Welcome to Abella 2.0.2-dev
Abella < Kind name, action, proc type.
Abella < Type null proc.
Abella < Type taup proc -> proc.
Abella < Type plus, par proc -> proc -> proc.
Abella < Type match, out name -> name -> proc -> proc.
Abella < Type in name -> (name -> proc) -> proc.
Abella < Type nu (name -> proc) -> proc.
Abella < Type repl proc -> proc.
Abella < Type tau action.
Abella < Type up, dn name -> name -> action.
Abella < Type a, b name.
Abella < Define one : proc -> action -> proc -> prop,
oneb : proc -> (name -> action) -> (name -> proc) -> prop by
one (taup P) tau P;
one (out X Y P) (up X Y) P;
one (plus P Q) A R := one P A R;
one (plus P Q) A R := one Q A R;
one (par P Q) A (par P1 Q) := one P A P1;
one (par P Q) A (par P Q1) := one Q A Q1;
one (nu (x\P x)) A (nu (x\Q x)) := nabla x, one (P x) A (Q x);
one (par P Q) tau (nu (y\par (M y) (N y))) := exists X, oneb P (dn X) M /\ oneb Q (up X) N;
one (par P Q) tau (nu (y\par (M y) (N y))) := exists X, oneb P (up X) M /\ oneb Q (dn X) N;
one (par P Q) tau (par (M Y) T) := exists X, oneb P (dn X) M /\ one Q (up X Y) T;
one (par P Q) tau (par R (M Y)) := exists X, oneb Q (dn X) M /\ one P (up X Y) R;
one (repl P) A (par (repl P) P1) := one P A P1;
one (repl P) tau (par (par P1 (M Y)) (repl P)) := exists X, one P (up X Y) P1 /\ oneb P (dn X) M;
one (repl P) tau (par (nu (y\par (N y) (M y))) (repl P)) := exists X, oneb P (up X) N /\ oneb P (dn X) M;
oneb (in X M) (dn X) M;
oneb (plus P Q) A M := oneb P A M;
oneb (plus P Q) A M := oneb Q A M;
oneb (par P Q) A (x\par (M x) Q) := oneb P A M;
oneb (par P Q) A (x\par P (N x)) := oneb Q A N;
oneb (nu (x\P x)) A (y\nu (x\Q x y)) := nabla x, oneb (P x) A (y\Q x y);
oneb (nu (x\M x)) (up X) N := nabla y, one (M y) (up X y) (N y);
oneb (repl P) A (x\par (repl P) (M x)) := oneb P A M.
Abella < CoDefine bisim_up_to : (proc -> proc -> proc -> proc -> prop) -> proc -> proc -> prop by
bisim_up_to Upto P Q := (forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
Upto P1 P2 Q1 Q2 /\ bisim_up_to Upto P2 Q2))) /\ (forall X M,
oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
Upto (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to Upto (M2 W) (N2 W)))) /\
(forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, Upto (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to Upto (M2 W) (N2 W)))) /\ (forall A Q1, one Q A Q1 ->
(exists P1, one P A P1 /\ (exists P2 Q2, Upto P1 P2 Q1 Q2 /\
bisim_up_to Upto P2 Q2))) /\ (forall X N, oneb Q (dn X) N -> (exists M,
oneb P (dn X) M /\ (exists M2 N2, forall W,
Upto (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to Upto (M2 W) (N2 W)))) /\
(forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, Upto (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to Upto (M2 W) (N2 W)))).
Abella < Define refl_t : proc -> proc -> proc -> proc -> prop by
refl_t P P Q Q.
Abella < CoDefine bisimr : proc -> proc -> prop by
bisimr P Q := bisim_up_to refl_t P Q.
Abella < Define equally_structured : (proc -> proc -> prop) -> prop by
equally_structured Pred := forall X1 X2 Y1 Y2, Pred X1 X2 -> Y1 = X1 -> Y2 = X2 -> Pred Y1 Y2.
Abella < Theorem equality_for_structured_refl :
equally_structured (bisim_up_to refl_t).
============================
equally_structured (bisim_up_to refl_t)
equality_for_structured_refl < unfold.
============================
forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
equality_for_structured_refl < intros.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to refl_t X1 X2
H2 : Y1 = X1
H3 : Y2 = X2
============================
bisim_up_to refl_t Y1 Y2
equality_for_structured_refl < case H2.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to refl_t X1 X2
H3 : Y2 = X2
============================
bisim_up_to refl_t X1 Y2
equality_for_structured_refl < case H3.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to refl_t X1 X2
============================
bisim_up_to refl_t X1 X2
equality_for_structured_refl < search.
Proof completed.
Abella < Theorem bisim_refl :
forall P, bisim_up_to refl_t P P.
============================
forall P, bisim_up_to refl_t P P
bisim_refl < coinduction.
CH : forall P, bisim_up_to refl_t P P +
============================
forall P, bisim_up_to refl_t P P #
bisim_refl < intros.
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
bisim_up_to refl_t P P #
bisim_refl < unfold.
Subgoal 1:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall A P1, one P A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 1:
Variables: P, A, P1
CH : forall P, bisim_up_to refl_t P P +
H1 : one P A P1
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < apply CH with P = P1.
Subgoal 1:
Variables: P, A, P1
CH : forall P, bisim_up_to refl_t P P +
H1 : one P A P1
H2 : bisim_up_to refl_t P1 P1 +
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 2:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (M W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < split.
Subgoal 2.1:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
oneb P (dn X) M
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 2.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 2.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
exists N2, forall W, refl_t (M W) (M W) (M W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 2.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
forall W, refl_t (M W) (M W) (M W) (M W) /\
bisim_up_to refl_t (M W) (M W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 2.2:
Variables: P, X, M, W
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
============================
refl_t (M W) (M W) (M W) (M W) /\ bisim_up_to refl_t (M W) (M W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < apply CH with P = M W.
Subgoal 2.2:
Variables: P, X, M, W
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) M
H2 : bisim_up_to refl_t (M W) (M W) +
============================
refl_t (M W) (M W) (M W) (M W) /\ bisim_up_to refl_t (M W) (M W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 3:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 3:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 3:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (M W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < split.
Subgoal 3.1:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
oneb P (up X) M
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 3.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 3.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
exists N2, nabla W, refl_t (M W) (M W) (M W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists M.
Subgoal 3.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
nabla W, refl_t (M W) (M W) (M W) (M W) /\
bisim_up_to refl_t (M W) (M W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 3.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
============================
refl_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to refl_t (M n1) (M n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < apply CH with P = M n1.
Subgoal 3.2:
Variables: P, X, M
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) M
H2 : bisim_up_to refl_t (M n1) (M n1) +
============================
refl_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to refl_t (M n1) (M n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 4:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 4:
Variables: P, A, Q1
CH : forall P, bisim_up_to refl_t P P +
H1 : one P A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < apply CH with P = Q1.
Subgoal 4:
Variables: P, A, Q1
CH : forall P, bisim_up_to refl_t P P +
H1 : one P A Q1
H2 : bisim_up_to refl_t Q1 Q1 +
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 5:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 5:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists N.
Subgoal 5:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
oneb P (dn X) N /\ (exists M2 N2, forall W,
refl_t (N W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < split.
Subgoal 5.1:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
oneb P (dn X) N
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 5.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
exists M2 N2, forall W, refl_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists N.
Subgoal 5.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
exists N2, forall W, refl_t (N W) (N W) (N W) (N2 W) /\
bisim_up_to refl_t (N W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < exists N.
Subgoal 5.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
forall W, refl_t (N W) (N W) (N W) (N W) /\
bisim_up_to refl_t (N W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 5.2:
Variables: P, X, N, W
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
============================
refl_t (N W) (N W) (N W) (N W) /\ bisim_up_to refl_t (N W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < apply CH with P = N W.
Subgoal 5.2:
Variables: P, X, N, W
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (dn X) N
H2 : bisim_up_to refl_t (N W) (N W) +
============================
refl_t (N W) (N W) (N W) (N W) /\ bisim_up_to refl_t (N W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < search.
Subgoal 6:
Variables: P
CH : forall P, bisim_up_to refl_t P P +
============================
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_refl < intros.
Subgoal 6:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_refl < exists N.
Subgoal 6:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
oneb P (up X) N /\ (exists M2 N2, nabla W,
refl_t (N W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_refl < split.
Subgoal 6.1:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
oneb P (up X) N
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_refl < search.
Subgoal 6.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
exists M2 N2, nabla W, refl_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_refl < exists N.
Subgoal 6.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
exists N2, nabla W, refl_t (N W) (N W) (N W) (N2 W) /\
bisim_up_to refl_t (N W) (N2 W) +
bisim_refl < exists N.
Subgoal 6.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
nabla W, refl_t (N W) (N W) (N W) (N W) /\
bisim_up_to refl_t (N W) (N W) +
bisim_refl < intros.
Subgoal 6.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
============================
refl_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to refl_t (N n1) (N n1) +
bisim_refl < apply CH with P = N n1.
Subgoal 6.2:
Variables: P, X, N
CH : forall P, bisim_up_to refl_t P P +
H1 : oneb P (up X) N
H2 : bisim_up_to refl_t (N n1) (N n1) +
============================
refl_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to refl_t (N n1) (N n1) +
bisim_refl < search.
Proof completed.
Abella < Theorem bisim_sym :
forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P.
============================
forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
bisim_sym < coinduction.
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
============================
forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P #
bisim_sym < intros.
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H1 : bisim_up_to refl_t P Q
============================
bisim_up_to refl_t Q P #
bisim_sym < case H1.
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t Q P #
bisim_sym < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall A P1, one Q A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H5 to H8.
Subgoal 1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists P2.
Subgoal 1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
one P A P2 /\ (exists P3 Q2, refl_t P1 P3 P2 Q2 /\
bisim_up_to refl_t P3 Q2 +)
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 1.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
one P A P2
Subgoal 1.2 is:
exists P3 Q2, refl_t P1 P3 P2 Q2 /\ bisim_up_to refl_t P3 Q2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists P3 Q2, refl_t P1 P3 P2 Q2 /\ bisim_up_to refl_t P3 Q2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists P1.
Subgoal 1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists Q2, refl_t P1 P1 P2 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists P2.
Subgoal 1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
refl_t P1 P1 P2 P2 /\ bisim_up_to refl_t P1 P2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
refl_t P1 P1 P2 P2
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 P2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 1.2.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A P1
H9 : one P A P2
H10 : refl_t P2 P3 P1 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to refl_t P1 P2 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H10.
Subgoal 1.2.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one Q A Q3
H9 : one P A P3
H11 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to refl_t Q3 P3 +
Subgoal 2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H6 to H8.
Subgoal 2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M1.
Subgoal 2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M1 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (M1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 2.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M1
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M1.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (M1 W) (M1 W) /\
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (M1 W) (M1 W) /\ bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (M1 W) (M1 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H10 with W = W.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H11 : refl_t (M1 W) (M2 W) (M W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H11.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : M W = N2 W
H14 : M1 W = M2 W
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : M W = N2 W
H14 : M1 W = M2 W
H15 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H15.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : M W = N2 W
H14 : M1 W = M2 W
H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H16 to H12 H14 H13.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) M
H9 : oneb P (dn X) M1
H10 : forall W, refl_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : M W = N2 W
H14 : M1 W = M2 W
H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H17 : bisim_up_to refl_t (M1 W) (M W)
============================
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H7 to H8.
Subgoal 3:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M1.
Subgoal 3:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M1 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (M1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 3.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M1
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M.
Subgoal 3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (M1 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists M1.
Subgoal 3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (M1 W) (M1 W) /\
bisim_up_to refl_t (M W) (M1 W) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (M1 n1) (M1 n1) /\
bisim_up_to refl_t (M n1) (M1 n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (M1 n1) (M1 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (M1 n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 3.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) M
H9 : oneb P (up X) M1
H10 : refl_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (M1 n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H10.
Subgoal 3.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb Q (up X) (z1\N2 z1)
H9 : oneb P (up X) (z1\M2 z1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (N2 n1) (M2 n1) +
Subgoal 4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
============================
exists P1, one Q A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H2 to H8.
Subgoal 4:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists P1, one Q A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists Q2.
Subgoal 4:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\
bisim_up_to refl_t P2 Q3 +)
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2
Subgoal 4.2 is:
exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\ bisim_up_to refl_t P2 Q3 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists P2 Q3, refl_t Q2 P2 Q1 Q3 /\ bisim_up_to refl_t P2 Q3 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists Q2.
Subgoal 4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
exists Q3, refl_t Q2 Q2 Q1 Q3 /\ bisim_up_to refl_t Q2 Q3 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists Q1.
Subgoal 4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
refl_t Q2 Q2 Q1 Q1 /\ bisim_up_to refl_t Q2 Q1 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
refl_t Q2 Q2 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t Q2 Q1 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A Q1
H9 : one Q A Q2
H10 : refl_t Q1 P3 Q2 Q3
H11 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to refl_t Q2 Q1 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H10.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : one P A P3
H9 : one Q A Q3
H11 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to refl_t Q3 P3 +
Subgoal 5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
============================
exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H3 to H8.
Subgoal 5:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists N1.
Subgoal 5:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N1 /\ (exists M2 N2, forall W,
refl_t (N1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 5.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N1
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists N1.
Subgoal 5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (N1 W) (N1 W) (N W) (N2 W) /\
bisim_up_to refl_t (N1 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < exists N.
Subgoal 5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, refl_t (N1 W) (N1 W) (N W) (N W) /\
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 5.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
refl_t (N1 W) (N1 W) (N W) (N W) /\ bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
refl_t (N1 W) (N1 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < search.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H10 with W = W.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H11 : refl_t (N W) (M2 W) (N1 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H11.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : N1 W = N2 W
H14 : N W = M2 W
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : N1 W = N2 W
H14 : N W = M2 W
H15 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < case H15.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : N1 W = N2 W
H14 : N W = M2 W
H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < apply H16 to H12 H14 H13.
Subgoal 5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (dn X) N
H9 : oneb Q (dn X) N1
H10 : forall W, refl_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : bisim_up_to refl_t (M2 W) (N2 W)
H13 : N1 W = N2 W
H14 : N W = M2 W
H16 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H17 : bisim_up_to refl_t (N W) (N1 W)
============================
bisim_up_to refl_t (N1 W) (N W) +
Subgoal 6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sym < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
============================
exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sym < apply H4 to H8.
Subgoal 6:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sym < exists N1.
Subgoal 6:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N1 /\ (exists M2 N2, nabla W,
refl_t (N1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sym < split.
Subgoal 6.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N1
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_sym < search.
Subgoal 6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_sym < exists N1.
Subgoal 6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (N1 W) (N1 W) (N W) (N2 W) /\
bisim_up_to refl_t (N1 W) (N2 W) +
bisim_sym < exists N.
Subgoal 6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (N1 W) (N1 W) (N W) (N W) /\
bisim_up_to refl_t (N1 W) (N W) +
bisim_sym < intros.
Subgoal 6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
refl_t (N1 n1) (N1 n1) (N n1) (N n1) /\
bisim_up_to refl_t (N1 n1) (N n1) +
bisim_sym < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
refl_t (N1 n1) (N1 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (N1 n1) (N n1) +
bisim_sym < search.
Subgoal 6.2.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) N
H9 : oneb Q (up X) N1
H10 : refl_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (N1 n1) (N n1) +
bisim_sym < case H10.
Subgoal 6.2.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : oneb P (up X) (z1\M2 z1)
H9 : oneb Q (up X) (z1\N2 z1)
H11 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (N2 n1) (M2 n1) +
bisim_sym < backchain CH.
Proof completed.
Abella < Theorem bisim_trans :
forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R.
============================
forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
bisim_trans < coinduction.
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
============================
forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R #
bisim_trans < intros.
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H1 : bisim_up_to refl_t P Q
H2 : bisim_up_to refl_t Q R
============================
bisim_up_to refl_t P R #
bisim_trans < case H1.
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H2 : bisim_up_to refl_t Q R
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t P R #
bisim_trans < case H2.
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t P R #
bisim_trans < unfold.
Subgoal 1:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 1:
Variables: P, Q, R, A, P1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P1
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H3 to H15.
Subgoal 1:
Variables: P, Q, R, A, P1, Q2, P3, Q3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P1
H16 : one Q A Q2
H17 : refl_t P1 P3 Q2 Q3
H18 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H9 to H16.
Subgoal 1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P1
H16 : one Q A Q2
H17 : refl_t P1 P3 Q2 Q3
H18 : bisim_up_to refl_t P3 Q3
H19 : one R A Q1
H20 : refl_t Q2 P2 Q1 Q4
H21 : bisim_up_to refl_t P2 Q4
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H17.
Subgoal 1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A Q3
H18 : bisim_up_to refl_t P3 Q3
H19 : one R A Q1
H20 : refl_t Q3 P2 Q1 Q4
H21 : bisim_up_to refl_t P2 Q4
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P3 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H20.
Subgoal 1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, refl_t P3 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists Q4.
Subgoal 1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
one R A Q4 /\ (exists P2 Q2, refl_t P3 P2 Q4 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 1.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
one R A Q4
Subgoal 1.2 is:
exists P2 Q2, refl_t P3 P2 Q4 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
exists P2 Q2, refl_t P3 P2 Q4 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists P3.
Subgoal 1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
exists Q2, refl_t P3 P3 Q4 Q2 /\ bisim_up_to refl_t P3 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists Q4.
Subgoal 1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
refl_t P3 P3 Q4 Q4 /\ bisim_up_to refl_t P3 Q4 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 1.2.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
refl_t P3 P3 Q4 Q4
Subgoal 1.2.2 is:
bisim_up_to refl_t P3 Q4 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 1.2.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one P A P3
H16 : one Q A P2
H18 : bisim_up_to refl_t P3 P2
H19 : one R A Q4
H21 : bisim_up_to refl_t P2 Q4
============================
bisim_up_to refl_t P3 Q4 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < backchain CH.
Subgoal 2:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 2:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H4 to H15.
Subgoal 2:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H10 to H16.
Subgoal 2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists N1.
Subgoal 2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
oneb R (dn X) N1 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
oneb R (dn X) N1
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists M.
Subgoal 2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists N1.
Subgoal 2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
forall W, refl_t (M W) (M W) (N1 W) (N1 W) /\
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
refl_t (M W) (M W) (N1 W) (N1 W) /\ bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 2.2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
refl_t (M W) (M W) (N1 W) (N1 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H17 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H19 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H20.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H22.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : N1 W = N3 W
H27 : N W = M1 W
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : N1 W = N3 W
H27 : N W = M1 W
H28 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H28.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : N1 W = N3 W
H27 : N W = M1 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H29 to H21 H25 H24.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : N1 W = N3 W
H27 : N W = M1 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H29 to H23 H27 H26.
Subgoal 2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (dn X) M
H16 : oneb Q (dn X) N
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb R (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : N1 W = N3 W
H27 : N W = M1 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
H31 : bisim_up_to refl_t (N W) (N1 W)
============================
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < backchain CH.
Subgoal 3:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 3:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H5 to H15.
Subgoal 3:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H11 to H16.
Subgoal 3:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists N1.
Subgoal 3:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
oneb R (up X) N1 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N1 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 3.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
oneb R (up X) N1
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists M.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N1 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists N1.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
nabla W, refl_t (M W) (M W) (N1 W) (N1 W) /\
bisim_up_to refl_t (M W) (N1 W) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
refl_t (M n1) (M n1) (N1 n1) (N1 n1) /\
bisim_up_to refl_t (M n1) (N1 n1) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 3.2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
refl_t (M n1) (M n1) (N1 n1) (N1 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N1 n1) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) M
H16 : oneb Q (up X) N
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
bisim_up_to refl_t (M n1) (N1 n1) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H17.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) (z1\M2 z1)
H16 : oneb Q (up X) (z1\N2 z1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb R (up X) N1
H20 : refl_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N1 n1) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H20.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb P (up X) (z1\M2 z1)
H16 : oneb Q (up X) (z1\M1 z1)
H18 : bisim_up_to refl_t (M2 n1) (M1 n1)
H19 : oneb R (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < backchain CH.
Subgoal 4:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 4:
Variables: P, Q, R, A, Q1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H12 to H15.
Subgoal 4:
Variables: P, Q, R, A, Q1, P2, P3, Q3
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q1
H16 : one Q A P2
H17 : refl_t P2 P3 Q1 Q3
H18 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H6 to H16.
Subgoal 4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q1
H16 : one Q A P2
H17 : refl_t P2 P3 Q1 Q3
H18 : bisim_up_to refl_t P3 Q3
H19 : one P A P1
H20 : refl_t P1 P4 P2 Q2
H21 : bisim_up_to refl_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H17.
Subgoal 4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A P3
H18 : bisim_up_to refl_t P3 Q3
H19 : one P A P1
H20 : refl_t P1 P4 P3 Q2
H21 : bisim_up_to refl_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q3 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H20.
Subgoal 4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q3 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists P4.
Subgoal 4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
one P A P4 /\ (exists P2 Q2, refl_t P4 P2 Q3 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 4.1:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
one P A P4
Subgoal 4.2 is:
exists P2 Q2, refl_t P4 P2 Q3 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
exists P2 Q2, refl_t P4 P2 Q3 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists P4.
Subgoal 4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
exists Q2, refl_t P4 P4 Q3 Q2 /\ bisim_up_to refl_t P4 Q2 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists Q3.
Subgoal 4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
refl_t P4 P4 Q3 Q3 /\ bisim_up_to refl_t P4 Q3 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 4.2.1:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
refl_t P4 P4 Q3 Q3
Subgoal 4.2.2 is:
bisim_up_to refl_t P4 Q3 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 4.2.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : one R A Q3
H16 : one Q A Q2
H18 : bisim_up_to refl_t Q2 Q3
H19 : one P A P4
H21 : bisim_up_to refl_t P4 Q2
============================
bisim_up_to refl_t P4 Q3 +
Subgoal 5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < backchain CH.
Subgoal 5:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 5:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H13 to H15.
Subgoal 5:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H7 to H16.
Subgoal 5:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists M1.
Subgoal 5:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
oneb P (dn X) M1 /\ (exists M2 N2, forall W,
refl_t (M1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 5.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
oneb P (dn X) M1
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
exists M2 N2, forall W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists M1.
Subgoal 5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
exists N2, forall W, refl_t (M1 W) (M1 W) (N W) (N2 W) /\
bisim_up_to refl_t (M1 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < exists N.
Subgoal 5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
forall W, refl_t (M1 W) (M1 W) (N W) (N W) /\
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
refl_t (M1 W) (M1 W) (N W) (N W) /\ bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < split.
Subgoal 5.2.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
refl_t (M1 W) (M1 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < search.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H17 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H19 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : refl_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H20.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : refl_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H22.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : M W = N1 W
H27 : M1 W = M3 W
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : M W = N1 W
H27 : M1 W = M3 W
H28 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < case H28.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : M W = N1 W
H27 : M1 W = M3 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H29 to H21 H25 H24.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : M W = N1 W
H27 : M1 W = M3 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < apply H29 to H23 H27 H26.
Subgoal 5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (dn X) N
H16 : oneb Q (dn X) M
H17 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H18 : oneb P (dn X) M1
H19 : forall W, refl_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to refl_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : M W = N1 W
H27 : M1 W = M3 W
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
H31 : bisim_up_to refl_t (M1 W) (M W)
============================
bisim_up_to refl_t (M1 W) (N W) +
Subgoal 6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < backchain CH.
Subgoal 6:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_trans < intros.
Subgoal 6:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_trans < apply H14 to H15.
Subgoal 6:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_trans < apply H8 to H16.
Subgoal 6:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_trans < exists M1.
Subgoal 6:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1 /\ (exists M2 N2, nabla W,
refl_t (M1 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_trans < split.
Subgoal 6.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_trans < search.
Subgoal 6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
exists M2 N2, nabla W, refl_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_trans < exists M1.
Subgoal 6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
exists N2, nabla W, refl_t (M1 W) (M1 W) (N W) (N2 W) /\
bisim_up_to refl_t (M1 W) (N2 W) +
bisim_trans < exists N.
Subgoal 6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
nabla W, refl_t (M1 W) (M1 W) (N W) (N W) /\
bisim_up_to refl_t (M1 W) (N W) +
bisim_trans < intros.
Subgoal 6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
refl_t (M1 n1) (M1 n1) (N n1) (N n1) /\
bisim_up_to refl_t (M1 n1) (N n1) +
bisim_trans < split.
Subgoal 6.2.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
refl_t (M1 n1) (M1 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M1 n1) (N n1) +
bisim_trans < search.
Subgoal 6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) N
H16 : oneb Q (up X) M
H17 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
bisim_up_to refl_t (M1 n1) (N n1) +
bisim_trans < case H17.
Subgoal 6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) (z1\N2 z1)
H16 : oneb Q (up X) (z1\M2 z1)
H18 : bisim_up_to refl_t (M2 n1) (N2 n1)
H19 : oneb P (up X) M1
H20 : refl_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
bisim_up_to refl_t (M1 n1) (N2 n1) +
bisim_trans < case H20.
Subgoal 6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R +
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H13 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : oneb R (up X) (z1\N2 z1)
H16 : oneb Q (up X) (z1\N1 z1)
H18 : bisim_up_to refl_t (N1 n1) (N2 n1)
H19 : oneb P (up X) (z1\M3 z1)
H21 : bisim_up_to refl_t (M3 n1) (N1 n1)
============================
bisim_up_to refl_t (M3 n1) (N2 n1) +
bisim_trans < backchain CH.
Proof completed.
Abella < Define bisim_t : proc -> proc -> proc -> proc -> prop by
bisim_t P1 P2 Q1 Q2 := bisim_up_to refl_t P1 P2 /\ bisim_up_to refl_t Q1 Q2.
Abella < Define is_sound : (proc -> proc -> proc -> proc -> prop) -> prop by
is_sound Upto := forall P Q, bisim_up_to Upto P Q -> bisim_up_to refl_t P Q.
Abella < Define is_sound_fst : (proc -> proc -> proc -> proc -> prop) -> prop by
is_sound_fst Upto := forall P Q, (exists R S, bisim_up_to refl_t P R /\ bisim_up_to Upto R S /\
bisim_up_to refl_t S Q) -> bisim_up_to refl_t P Q.
Abella < Define is_sound_snd : (proc -> proc -> proc -> proc -> prop) -> prop by
is_sound_snd Upto := forall P Q, bisim_up_to Upto P Q -> (exists R S, bisim_up_to refl_t P R /\
bisim_up_to Upto R S /\ bisim_up_to refl_t S Q).
Abella < Theorem bisim_sound_fst :
is_sound_fst bisim_t.
============================
is_sound_fst bisim_t
bisim_sound_fst < unfold.
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
bisim_sound_fst < coinduction.
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q #
bisim_sound_fst < intros.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H1 : exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisim_sound_fst < case H1.
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisim_sound_fst < unfold.
Subgoal 1:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H2.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H6 to H5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H3.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H15 to H12.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H4.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H24 to H21.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists Q5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 1.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5
Subgoal 1.2 is:
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists P1.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists Q5.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 1.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H13.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_t Q3 P2 Q1 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H31.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A P4
H22 : bisim_t Q3 P2 P4 Q4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H22.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : bisim_up_to refl_t Q3 P2
H34 : bisim_up_to refl_t P4 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H14 H33.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : bisim_up_to refl_t Q3 P2
H34 : bisim_up_to refl_t P4 Q4
H35 : bisim_up_to refl_t P3 P2
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_sym to H34.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : bisim_up_to refl_t Q3 P2
H34 : bisim_up_to refl_t P4 Q4
H35 : bisim_up_to refl_t P3 P2
H36 : bisim_up_to refl_t Q4 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H36 H32.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : bisim_up_to refl_t Q3 P2
H34 : bisim_up_to refl_t P4 Q4
H35 : bisim_up_to refl_t P3 P2
H36 : bisim_up_to refl_t Q4 P4
H37 : bisim_up_to refl_t Q4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < backchain CH.
Subgoal 2:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H2.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H7 to H5.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H3.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H15 to H12.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H23 to H20.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists N4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists M.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists N4.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H30.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H34.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H40.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H32.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : bisim_up_to refl_t (N W) (M1 W)
H45 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H42 H44.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : bisim_up_to refl_t (N W) (M1 W)
H45 : bisim_up_to refl_t (N1 W) (N3 W)
H46 : bisim_up_to refl_t (M W) (M1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_sym to H45.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : bisim_up_to refl_t (N W) (M1 W)
H45 : bisim_up_to refl_t (N1 W) (N3 W)
H46 : bisim_up_to refl_t (M W) (M1 W)
H47 : bisim_up_to refl_t (N3 W) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H47 H43.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : bisim_up_to refl_t (N W) (M1 W)
H45 : bisim_up_to refl_t (N1 W) (N3 W)
H46 : bisim_up_to refl_t (M W) (M1 W)
H47 : bisim_up_to refl_t (N3 W) (N1 W)
H48 : bisim_up_to refl_t (N3 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < backchain CH.
Subgoal 3:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H2.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H8 to H5.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H3.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H17 to H12.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H26 to H21.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists N4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 3.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists M.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists N4.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 3.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H13.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H31.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H22 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H22.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H14 H33.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_sym to H34.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
H36 : bisim_up_to refl_t (N3 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H36 H32.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : bisim_up_to refl_t (N2 n1) (M1 n1)
H34 : bisim_up_to refl_t (M3 n1) (N3 n1)
H35 : bisim_up_to refl_t (M2 n1) (M1 n1)
H36 : bisim_up_to refl_t (N3 n1) (M3 n1)
H37 : bisim_up_to refl_t (N3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < backchain CH.
Subgoal 4:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H4.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H9 to H5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H3.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H18 to H12.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H2.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H27 to H21.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists P5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 4.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5
Subgoal 4.2 is:
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists P5.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists Q1.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 4.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H13.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_t P1 P4 P3 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H31.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A Q4
H22 : bisim_t Q4 P4 P3 Q2
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H22.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : bisim_up_to refl_t Q4 P4
H34 : bisim_up_to refl_t P3 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H32 H33.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : bisim_up_to refl_t Q4 P4
H34 : bisim_up_to refl_t P3 Q2
H35 : bisim_up_to refl_t P6 P4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_sym to H34.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : bisim_up_to refl_t Q4 P4
H34 : bisim_up_to refl_t P3 Q2
H35 : bisim_up_to refl_t P6 P4
H36 : bisim_up_to refl_t Q2 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H36 H14.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : bisim_up_to refl_t Q4 P4
H34 : bisim_up_to refl_t P3 Q2
H35 : bisim_up_to refl_t P6 P4
H36 : bisim_up_to refl_t Q2 P3
H37 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < backchain CH.
Subgoal 5:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H4.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H10 to H5.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H3.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H18 to H12.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H2.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H26 to H20.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists M4.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4 /\ (exists M2 N2, forall W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 5.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists M4.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < exists N.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < split.
Subgoal 5.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < search.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H30.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H34.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H40.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < case H32.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : bisim_up_to refl_t (M1 W) (M3 W)
H45 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H43 H44.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : bisim_up_to refl_t (M1 W) (M3 W)
H45 : bisim_up_to refl_t (M W) (N1 W)
H46 : bisim_up_to refl_t (M4 W) (M3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_sym to H45.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : bisim_up_to refl_t (M1 W) (M3 W)
H45 : bisim_up_to refl_t (M W) (N1 W)
H46 : bisim_up_to refl_t (M4 W) (M3 W)
H47 : bisim_up_to refl_t (N1 W) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < apply bisim_trans to H47 H42.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : bisim_up_to refl_t (M1 W) (M3 W)
H45 : bisim_up_to refl_t (M W) (N1 W)
H46 : bisim_up_to refl_t (M4 W) (M3 W)
H47 : bisim_up_to refl_t (N1 W) (M W)
H48 : bisim_up_to refl_t (N1 W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < backchain CH.
Subgoal 6:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_sound_fst < intros.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < case H4.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < apply H11 to H5.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < case H3.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < apply H20 to H12.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < case H2.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < apply H29 to H21.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < exists M4.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4 /\ (exists M2 N2, nabla W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_sound_fst < split.
Subgoal 6.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_sound_fst < search.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_sound_fst < exists M4.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
bisim_sound_fst < exists N.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
bisim_sound_fst < intros.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_sound_fst < split.
Subgoal 6.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_sound_fst < search.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_sound_fst < case H13.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N2 n1) +
bisim_sound_fst < case H31.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H22 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_sound_fst < case H22.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_sound_fst < apply bisim_trans to H32 H33.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_sound_fst < apply bisim_sym to H34.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
H36 : bisim_up_to refl_t (N1 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_sound_fst < apply bisim_trans to H36 H14.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : bisim_up_to refl_t (N3 n1) (M3 n1)
H34 : bisim_up_to refl_t (M2 n1) (N1 n1)
H35 : bisim_up_to refl_t (M5 n1) (M3 n1)
H36 : bisim_up_to refl_t (N1 n1) (M2 n1)
H37 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_sound_fst < backchain CH.
Proof completed.
Abella < Theorem bisim_sound_snd :
is_sound_snd bisim_t.
============================
is_sound_snd bisim_t
bisim_sound_snd < unfold.
============================
forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q)
bisim_sound_snd < intros.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q
bisim_sound_snd < apply bisim_refl with P = P.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to refl_t P P
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q
bisim_sound_snd < apply bisim_refl with P = Q.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q
bisim_sound_snd < exists P.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_t P S /\
bisim_up_to refl_t S Q
bisim_sound_snd < exists Q.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
bisim_up_to refl_t P P /\ bisim_up_to bisim_t P Q /\
bisim_up_to refl_t Q Q
bisim_sound_snd < search.
Proof completed.
Abella < Theorem bisim_sound :
is_sound bisim_t.
============================
is_sound bisim_t
bisim_sound < unfold.
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
bisim_sound < intros.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t P Q
bisim_sound < apply bisim_sound_snd.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H2 : is_sound_snd bisim_t
============================
bisim_up_to refl_t P Q
bisim_sound < case H2.
Variables: P, Q
H1 : bisim_up_to bisim_t P Q
H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q)
============================
bisim_up_to refl_t P Q
bisim_sound < apply H3 to H1.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_t P Q
H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_t R S
H6 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q
bisim_sound < apply bisim_sound_fst.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_t P Q
H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_t R S
H6 : bisim_up_to refl_t S Q
H7 : is_sound_fst bisim_t
============================
bisim_up_to refl_t P Q
bisim_sound < case H7.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_t P Q
H3 : forall P Q, bisim_up_to bisim_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_t R S
H6 : bisim_up_to refl_t S Q
H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
============================
bisim_up_to refl_t P Q
bisim_sound < backchain H8.
Proof completed.
Abella < Define transitivity_t : proc -> proc -> proc -> proc -> prop by
transitivity_t P1 P3 Q1 Q3 := P1 = P3 /\ Q1 = Q3 \/ (exists P2 Q2, bisim_up_to transitivity_t P1 P2 /\
bisim_up_to transitivity_t P2 P3 /\ bisim_up_to transitivity_t Q1 Q2 /\
bisim_up_to transitivity_t Q2 Q3).
Abella < Theorem bisimUpToTrans_sym :
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P.
============================
forall P Q, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q P
bisimUpToTrans_sym < skip.
Proof completed.
Abella < Theorem bisimUpToTrans_trans :
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R.
============================
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimUpToTrans_trans < skip.
Proof completed.
Abella < Define equally_structured_1 : (proc -> proc -> prop) -> prop by
equally_structured_1 Pred := forall X1 X2 Y, Pred X1 X2 -> X2 = Y -> Pred X1 Y.
Abella < Define equally_structured_2 : (proc -> proc -> prop) -> prop by
equally_structured_2 Pred := forall X1 X2 Y, Pred X1 X2 -> X1 = Y -> Pred Y X2.
Abella < Theorem equally_structured_1_refl :
equally_structured_1 (bisim_up_to refl_t).
============================
equally_structured_1 (bisim_up_to refl_t)
equally_structured_1_refl < skip.
Proof completed.
Abella < Theorem equally_structured_2_refl :
equally_structured_2 (bisim_up_to refl_t).
============================
equally_structured_2 (bisim_up_to refl_t)
equally_structured_2_refl < skip.
Proof completed.
Abella < Theorem transitivity_sound_fst :
is_sound_fst transitivity_t.
============================
is_sound_fst transitivity_t
transitivity_sound_fst < unfold.
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
transitivity_sound_fst < coinduction.
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q #
transitivity_sound_fst < intros.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H1 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
transitivity_sound_fst < case H1.
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
transitivity_sound_fst < unfold.
Subgoal 1:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H2.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H6 to H5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H3.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H15 to H12.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H4.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H24 to H21.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists Q5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 1.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5
Subgoal 1.2 is:
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists P1.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists Q5.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 1.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q2 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H13.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : transitivity_t Q3 P2 Q1 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H31.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H22 : transitivity_t Q3 P2 P4 Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H22.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : Q3 = P2 /\ P4 = Q4 \/ (exists P1 Q2,
bisim_up_to transitivity_t Q3 P1 /\
bisim_up_to transitivity_t P1 P2 /\
bisim_up_to transitivity_t P4 Q2 /\
bisim_up_to transitivity_t Q2 Q4)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H33.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A P2
H14 : bisim_up_to refl_t P3 P2
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A Q4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t Q4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
H39 : bisim_up_to transitivity_t Q4 Q7
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
H39 : bisim_up_to transitivity_t Q4 Q7
H40 : bisim_up_to transitivity_t P2 Q7
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
H39 : bisim_up_to transitivity_t Q4 Q7
H40 : bisim_up_to transitivity_t P2 Q7
H41 : bisim_up_to transitivity_t Q7 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
H39 : bisim_up_to transitivity_t Q4 Q7
H40 : bisim_up_to transitivity_t P2 Q7
H41 : bisim_up_to transitivity_t Q7 P4
H42 : bisim_up_to transitivity_t P2 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to transitivity_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_up_to transitivity_t Q3 P5
H35 : bisim_up_to transitivity_t P5 P2
H36 : bisim_up_to transitivity_t P4 Q7
H37 : bisim_up_to transitivity_t Q7 Q4
H38 : bisim_up_to transitivity_t Q3 P2
H39 : bisim_up_to transitivity_t Q4 Q7
H40 : bisim_up_to transitivity_t P2 Q7
H41 : bisim_up_to transitivity_t Q7 P4
H42 : bisim_up_to transitivity_t P2 P4
H43 : bisim_up_to transitivity_t Q3 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 2:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H2.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H7 to H5.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H3.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H15 to H12.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H23 to H20.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists N4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists M.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists N4.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H30.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H34.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H40.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H32.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : N W = M1 W /\ N1 W = N3 W \/ (exists P2 Q2,
bisim_up_to transitivity_t (N W) P2 /\
bisim_up_to transitivity_t P2 (M1 W) /\
bisim_up_to transitivity_t (N1 W) Q2 /\
bisim_up_to transitivity_t Q2 (N3 W))
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H44.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equally_structured_1_refl.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H47 : equally_structured_1 (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H47.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H48 to H42 H45.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
H49 : bisim_up_to refl_t (M W) (M1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equally_structured_2_refl.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
H49 : bisim_up_to refl_t (M W) (M1 W)
H50 : equally_structured_2 (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H50.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
H49 : bisim_up_to refl_t (M W) (M1 W)
H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H51 to H43 H46.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : N W = M1 W
H46 : N1 W = N3 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
H49 : bisim_up_to refl_t (M W) (M1 W)
H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
H52 : bisim_up_to refl_t (N3 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H45 H46.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H48.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
H50 : bisim_up_to transitivity_t (N3 W) Q2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H33 H50.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
H50 : bisim_up_to transitivity_t (N3 W) Q2
H51 : bisim_up_to transitivity_t (M1 W) Q2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H47.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
H50 : bisim_up_to transitivity_t (N3 W) Q2
H51 : bisim_up_to transitivity_t (M1 W) Q2
H52 : bisim_up_to transitivity_t Q2 (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H51 H52.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
H50 : bisim_up_to transitivity_t (N3 W) Q2
H51 : bisim_up_to transitivity_t (M1 W) Q2
H52 : bisim_up_to transitivity_t Q2 (N1 W)
H53 : bisim_up_to transitivity_t (M1 W) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H49 H53.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, transitivity_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to transitivity_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_up_to transitivity_t (N W) P2
H46 : bisim_up_to transitivity_t P2 (M1 W)
H47 : bisim_up_to transitivity_t (N1 W) Q2
H48 : bisim_up_to transitivity_t Q2 (N3 W)
H49 : bisim_up_to transitivity_t (N W) (M1 W)
H50 : bisim_up_to transitivity_t (N3 W) Q2
H51 : bisim_up_to transitivity_t (M1 W) Q2
H52 : bisim_up_to transitivity_t Q2 (N1 W)
H53 : bisim_up_to transitivity_t (M1 W) (N1 W)
H54 : bisim_up_to transitivity_t (N W) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 3:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H2.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H8 to H5.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H3.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H17 to H12.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H26 to H21.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists N4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 3.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists M.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists N4.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 3.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H13.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : transitivity_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H31.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H22 : transitivity_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H22.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : N2 n1 = M1 n1 /\ M3 n1 = N3 n1 \/ (exists P2 Q2,
bisim_up_to transitivity_t (N2 n1) P2 /\
bisim_up_to transitivity_t P2 (M1 n1) /\
bisim_up_to transitivity_t (M3 n1) Q2 /\
bisim_up_to transitivity_t Q2 (N3 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H33.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\M1 z1)
H14 : bisim_up_to refl_t (M2 n1) (M1 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (N3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
H42 : bisim_up_to transitivity_t (M1 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_up_to transitivity_t (N2 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M1 n1)
H36 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N3 n1)
H38 : bisim_up_to transitivity_t (N2 n1) (M1 n1)
H39 : bisim_up_to transitivity_t (N3 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M1 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M3 n1)
H42 : bisim_up_to transitivity_t (M1 n1) (M3 n1)
H43 : bisim_up_to transitivity_t (N2 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 4:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H4.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H9 to H5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H3.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H18 to H12.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H2.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H27 to H21.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists P5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 4.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5
Subgoal 4.2 is:
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists P5.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists Q1.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 4.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P2 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H13.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : transitivity_t P1 P4 P3 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H31.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H22 : transitivity_t Q4 P4 P3 Q2
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H22.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : Q4 = P4 /\ P3 = Q2 \/ (exists P2 Q1,
bisim_up_to transitivity_t Q4 P2 /\
bisim_up_to transitivity_t P2 P4 /\
bisim_up_to transitivity_t P3 Q1 /\
bisim_up_to transitivity_t Q1 Q2)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H33.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A Q2
H14 : bisim_up_to refl_t Q2 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A P4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 P4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
H39 : bisim_up_to transitivity_t Q2 Q5
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
H39 : bisim_up_to transitivity_t Q2 Q5
H40 : bisim_up_to transitivity_t P4 Q5
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
H39 : bisim_up_to transitivity_t Q2 Q5
H40 : bisim_up_to transitivity_t P4 Q5
H41 : bisim_up_to transitivity_t Q5 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
H39 : bisim_up_to transitivity_t Q2 Q5
H40 : bisim_up_to transitivity_t P4 Q5
H41 : bisim_up_to transitivity_t Q5 P3
H42 : bisim_up_to transitivity_t P4 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to transitivity_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_up_to transitivity_t Q4 P7
H35 : bisim_up_to transitivity_t P7 P4
H36 : bisim_up_to transitivity_t P3 Q5
H37 : bisim_up_to transitivity_t Q5 Q2
H38 : bisim_up_to transitivity_t Q4 P4
H39 : bisim_up_to transitivity_t Q2 Q5
H40 : bisim_up_to transitivity_t P4 Q5
H41 : bisim_up_to transitivity_t Q5 P3
H42 : bisim_up_to transitivity_t P4 P3
H43 : bisim_up_to transitivity_t Q4 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 5:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H4.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H10 to H5.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H3.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H18 to H12.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H2.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H26 to H20.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists M4.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4 /\ (exists M2 N2, forall W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 5.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists M4.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < exists N.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < split.
Subgoal 5.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < search.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H30.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H34.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H40.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : transitivity_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H32.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : M1 W = M3 W /\ M W = N1 W \/ (exists P2 Q2,
bisim_up_to transitivity_t (M1 W) P2 /\
bisim_up_to transitivity_t P2 (M3 W) /\
bisim_up_to transitivity_t (M W) Q2 /\
bisim_up_to transitivity_t Q2 (N1 W))
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H44.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equally_structured_2_refl.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H47 : equally_structured_2 (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H47.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H48 to H42 H46.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
H49 : bisim_up_to refl_t (N1 W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply equally_structured_1_refl.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
H49 : bisim_up_to refl_t (N1 W) (N W)
H50 : equally_structured_1 (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < case H50.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
H49 : bisim_up_to refl_t (N1 W) (N W)
H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply H51 to H43 H45.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : M1 W = M3 W
H46 : M W = N1 W
H48 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X1 = Y ->
bisim_up_to refl_t Y X2
H49 : bisim_up_to refl_t (N1 W) (N W)
H51 : forall X1 X2 Y, bisim_up_to refl_t X1 X2 -> X2 = Y ->
bisim_up_to refl_t X1 Y
H52 : bisim_up_to refl_t (M4 W) (M3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H45 H46.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H48.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
H50 : bisim_up_to transitivity_t (N1 W) Q2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H33 H50.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
H50 : bisim_up_to transitivity_t (N1 W) Q2
H51 : bisim_up_to transitivity_t (M3 W) Q2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_sym to H47.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
H50 : bisim_up_to transitivity_t (N1 W) Q2
H51 : bisim_up_to transitivity_t (M3 W) Q2
H52 : bisim_up_to transitivity_t Q2 (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H51 H52.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
H50 : bisim_up_to transitivity_t (N1 W) Q2
H51 : bisim_up_to transitivity_t (M3 W) Q2
H52 : bisim_up_to transitivity_t Q2 (M W)
H53 : bisim_up_to transitivity_t (M3 W) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < apply bisimUpToTrans_trans to H49 H53.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, transitivity_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to transitivity_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to transitivity_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_up_to transitivity_t (M1 W) P2
H46 : bisim_up_to transitivity_t P2 (M3 W)
H47 : bisim_up_to transitivity_t (M W) Q2
H48 : bisim_up_to transitivity_t Q2 (N1 W)
H49 : bisim_up_to transitivity_t (M1 W) (M3 W)
H50 : bisim_up_to transitivity_t (N1 W) Q2
H51 : bisim_up_to transitivity_t (M3 W) Q2
H52 : bisim_up_to transitivity_t Q2 (M W)
H53 : bisim_up_to transitivity_t (M3 W) (M W)
H54 : bisim_up_to transitivity_t (M1 W) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < backchain CH.
Subgoal 6:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
transitivity_sound_fst < intros.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < case H4.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < apply H11 to H5.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to transitivity_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < case H3.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < apply H20 to H12.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < case H2.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < apply H29 to H21.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < exists M4.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4 /\ (exists M2 N2, nabla W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
transitivity_sound_fst < split.
Subgoal 6.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
transitivity_sound_fst < search.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
transitivity_sound_fst < exists M4.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
transitivity_sound_fst < exists N.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
transitivity_sound_fst < intros.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
bisim_up_to refl_t (M4 n1) (N n1) +
transitivity_sound_fst < split.
Subgoal 6.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M4 n1) (N n1) +
transitivity_sound_fst < search.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N n1) +
transitivity_sound_fst < case H13.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : transitivity_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N2 n1) +
transitivity_sound_fst < case H31.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H22 : transitivity_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < case H22.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : N3 n1 = M3 n1 /\ M2 n1 = N1 n1 \/ (exists P2 Q2,
bisim_up_to transitivity_t (N3 n1) P2 /\
bisim_up_to transitivity_t P2 (M3 n1) /\
bisim_up_to transitivity_t (M2 n1) Q2 /\
bisim_up_to transitivity_t Q2 (N1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < case H33.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\N1 z1)
H14 : bisim_up_to refl_t (N1 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\M3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (M3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < backchain CH.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_trans to H34 H35.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_sym to H37.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_trans to H23 H39.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_sym to H36.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_trans to H40 H41.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
H42 : bisim_up_to transitivity_t (M3 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < apply bisimUpToTrans_trans to H38 H42.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
transitivity_t P2 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to transitivity_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_up_to transitivity_t (N3 n1) (P2 n1)
H35 : bisim_up_to transitivity_t (P2 n1) (M3 n1)
H36 : bisim_up_to transitivity_t (M2 n1) (Q2 n1)
H37 : bisim_up_to transitivity_t (Q2 n1) (N1 n1)
H38 : bisim_up_to transitivity_t (N3 n1) (M3 n1)
H39 : bisim_up_to transitivity_t (N1 n1) (Q2 n1)
H40 : bisim_up_to transitivity_t (M3 n1) (Q2 n1)
H41 : bisim_up_to transitivity_t (Q2 n1) (M2 n1)
H42 : bisim_up_to transitivity_t (M3 n1) (M2 n1)
H43 : bisim_up_to transitivity_t (N3 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
transitivity_sound_fst < backchain CH.
Proof completed.
Abella < Theorem transitivity_sound_snd :
is_sound_snd transitivity_t.
============================
is_sound_snd transitivity_t
transitivity_sound_snd < unfold.
============================
forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q)
transitivity_sound_snd < intros.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q
transitivity_sound_snd < apply bisim_refl with P = P.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H2 : bisim_up_to refl_t P P
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q
transitivity_sound_snd < apply bisim_refl with P = Q.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q
transitivity_sound_snd < exists P.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists S, bisim_up_to refl_t P P /\ bisim_up_to transitivity_t P S /\
bisim_up_to refl_t S Q
transitivity_sound_snd < exists Q.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
bisim_up_to refl_t P P /\ bisim_up_to transitivity_t P Q /\
bisim_up_to refl_t Q Q
transitivity_sound_snd < search.
Proof completed.
Abella < Theorem transitivity_sound :
is_sound transitivity_t.
============================
is_sound transitivity_t
transitivity_sound < unfold.
============================
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
transitivity_sound < intros.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
============================
bisim_up_to refl_t P Q
transitivity_sound < apply transitivity_sound_snd.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H2 : is_sound_snd transitivity_t
============================
bisim_up_to refl_t P Q
transitivity_sound < case H2.
Variables: P, Q
H1 : bisim_up_to transitivity_t P Q
H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q)
============================
bisim_up_to refl_t P Q
transitivity_sound < apply H3 to H1.
Variables: P, Q, R, S
H1 : bisim_up_to transitivity_t P Q
H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to transitivity_t R S
H6 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q
transitivity_sound < apply transitivity_sound_fst.
Variables: P, Q, R, S
H1 : bisim_up_to transitivity_t P Q
H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to transitivity_t R S
H6 : bisim_up_to refl_t S Q
H7 : is_sound_fst transitivity_t
============================
bisim_up_to refl_t P Q
transitivity_sound < case H7.
Variables: P, Q, R, S
H1 : bisim_up_to transitivity_t P Q
H3 : forall P Q, bisim_up_to transitivity_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to transitivity_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to transitivity_t R S
H6 : bisim_up_to refl_t S Q
H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to transitivity_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
============================
bisim_up_to refl_t P Q
transitivity_sound < backchain H8.
Proof completed.
Abella < Define context_t : proc -> proc -> proc -> proc -> prop by
context_t P1 P2 Q1 Q2 := P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R).
Abella < Theorem bisimUpToContext_cong :
forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R).
============================
forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
bisimUpToContext_cong < skip.
Proof completed.
Abella < Theorem equality_for_structured_cont :
equally_structured (bisim_up_to context_t).
============================
equally_structured (bisim_up_to context_t)
equality_for_structured_cont < unfold.
============================
forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to context_t Y1 Y2
equality_for_structured_cont < intros.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to context_t X1 X2
H2 : Y1 = X1
H3 : Y2 = X2
============================
bisim_up_to context_t Y1 Y2
equality_for_structured_cont < case H2.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to context_t X1 X2
H3 : Y2 = X2
============================
bisim_up_to context_t X1 Y2
equality_for_structured_cont < case H3.
Variables: X1, X2, Y1, Y2
H1 : bisim_up_to context_t X1 X2
============================
bisim_up_to context_t X1 X2
equality_for_structured_cont < search.
Proof completed.
Abella < Theorem context_sound :
is_sound context_t.
============================
is_sound context_t
context_sound < unfold.
============================
forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
context_sound < coinduction.
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
============================
forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q #
context_sound < intros.
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H1 : bisim_up_to context_t P Q
============================
bisim_up_to refl_t P Q #
context_sound < case H1.
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t P Q #
context_sound < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H2 to H8.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
bisim_up_to refl_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists P1.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists Q2.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
refl_t P1 P1 Q2 Q2
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H10 : context_t P1 P3 Q2 Q3
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H10.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P1
H9 : one Q A Q2
H11 : bisim_up_to context_t P3 Q3
H12 : P1 = P3 /\ Q2 = Q3 \/ (exists R, P1 = par P3 R /\ Q2 = par Q3 R)
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H12.
Subgoal 1.2.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A P3
H9 : one Q A Q3
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P3 Q3 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 1.2.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A (par P3 R)
H9 : one Q A (par Q3 R)
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply bisimUpToContext_cong to H11 with R = R.
Subgoal 1.2.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one P A (par P3 R)
H9 : one Q A (par Q3 R)
H11 : bisim_up_to context_t P3 Q3
H13 : bisim_up_to context_t (par P3 R) (par Q3 R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H3 to H8.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists M.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists N.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H10 with W = W.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H11 : context_t (M W) (M2 W) (N W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H11.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H13 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
N W = par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H13.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply equality_for_structured_cont.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H16 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H16.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H17 to H12 H14 H15.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H18 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply bisimUpToContext_cong to H12 with R = R.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply equality_for_structured_cont.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H17 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H17.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H18 to H16 H14 H15.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (dn X) M
H9 : oneb Q (dn X) N
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H19 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H4 to H8.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists M.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists N.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H10.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) M
H9 : oneb Q (up X) N
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
H12 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
N n1 = par (N2 n1) R)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H12.
Subgoal 3.2.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) (z1\M2 z1)
H9 : oneb Q (up X) (z1\N2 z1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M2 n1) (N2 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 3.2.2.2:
Variables: P, Q, X, M, N, M2, N2, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) (z1\par (M2 z1) (R z1))
H9 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply bisimUpToContext_cong to H11 with R = R n1.
Subgoal 3.2.2.2:
Variables: P, Q, X, M, N, M2, N2, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb P (up X) (z1\par (M2 z1) (R z1))
H9 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
H13 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H5 to H8.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
bisim_up_to refl_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists P2.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists Q1.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
refl_t P2 P2 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H10 : context_t P2 P3 Q1 Q3
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H10.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q1
H9 : one P A P2
H11 : bisim_up_to context_t P3 Q3
H12 : P2 = P3 /\ Q1 = Q3 \/ (exists R, P2 = par P3 R /\ Q1 = par Q3 R)
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H12.
Subgoal 4.2.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A Q3
H9 : one P A P3
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P3 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 4.2.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A (par Q3 R)
H9 : one P A (par P3 R)
H11 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply bisimUpToContext_cong to H11 with R = R.
Subgoal 4.2.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : one Q A (par Q3 R)
H9 : one P A (par P3 R)
H11 : bisim_up_to context_t P3 Q3
H13 : bisim_up_to context_t (par P3 R) (par Q3 R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H6 to H8.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists M.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < exists N.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < search.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H10 with W = W.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H11 : context_t (M W) (M2 W) (N W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H11.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H13 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
N W = par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H13.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply equality_for_structured_cont.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H16 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H16.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H17 to H12 H14 H15.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = M2 W
H15 : N W = N2 W
H17 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H18 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply bisimUpToContext_cong to H12 with R = R.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply equality_for_structured_cont.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H17 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < case H17.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < apply H18 to H16 H14 H15.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (dn X) N
H9 : oneb P (dn X) M
H10 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : bisim_up_to context_t (M2 W) (N2 W)
H14 : M W = par (M2 W) R
H15 : N W = par (N2 W) R
H16 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H18 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H19 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
context_sound < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
context_sound < apply H7 to H8.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
context_sound < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
context_sound < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
context_sound < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
context_sound < exists M.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
context_sound < exists N.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
context_sound < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
context_sound < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
context_sound < search.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H10 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
context_sound < case H10.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) N
H9 : oneb P (up X) M
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
H12 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
N n1 = par (N2 n1) R)
============================
bisim_up_to refl_t (M n1) (N n1) +
context_sound < case H12.
Subgoal 6.2.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) (z1\N2 z1)
H9 : oneb P (up X) (z1\M2 z1)
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M2 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
context_sound < backchain CH.
Subgoal 6.2.2.2:
Variables: P, Q, X, N, M, M2, N2, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H9 : oneb P (up X) (z1\par (M2 z1) (R z1))
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
context_sound < apply bisimUpToContext_cong to H11 with R = R n1.
Subgoal 6.2.2.2:
Variables: P, Q, X, N, M, M2, N2, R
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H2 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H3 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H4 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H5 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H6 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H8 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H9 : oneb P (up X) (z1\par (M2 z1) (R z1))
H11 : bisim_up_to context_t (M2 n1) (N2 n1)
H13 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
context_sound < backchain CH.
Proof completed.
Abella < Define bisim_context_t : proc -> proc -> proc -> proc -> prop by
bisim_context_t P1 P3 Q1 Q3 := bisim_t P1 P3 Q1 Q3 \/ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ (exists R,
P2 = par P3 R /\ Q2 = par Q3 R)).
Abella < Theorem bisimUpToBisimAndContext_cong :
forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R).
============================
forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimUpToBisimAndContext_cong < skip.
Proof completed.
Abella < Theorem bisim_context_sound_fst :
is_sound_fst bisim_context_t.
============================
is_sound_fst bisim_context_t
bisim_context_sound_fst < unfold.
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
bisim_context_sound_fst < coinduction.
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q #
bisim_context_sound_fst < intros.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H1 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisim_context_sound_fst < case H1.
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisim_context_sound_fst < unfold.
Subgoal 1:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H2.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H6 to H5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H3.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H15 to H12.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H4.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H24 to H21.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists Q5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 1.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5
Subgoal 1.2 is:
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists P1.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists Q5.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 1.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P1
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q2
H13 : refl_t P1 P3 Q2 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q2 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H13.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A Q1
H22 : bisim_context_t Q3 P2 Q1 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q5
H31 : refl_t Q1 P4 Q5 Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H31.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H22 : bisim_context_t Q3 P2 P4 Q4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H22.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H33 : bisim_t Q3 P2 P4 Q4 \/ (exists P1 Q2, bisim_t Q3 P1 P4 Q2 /\
(exists R, P1 = par P2 R /\ Q2 = par Q4 R))
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H33.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_t Q3 P2 P4 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 P2
H36 : bisim_up_to refl_t P4 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 P2
H36 : bisim_up_to refl_t P4 Q4
H37 : bisim_up_to refl_t P3 P2
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 P2
H36 : bisim_up_to refl_t P4 Q4
H37 : bisim_up_to refl_t P3 P2
H38 : bisim_up_to refl_t Q4 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 P2
H36 : bisim_up_to refl_t P4 Q4
H37 : bisim_up_to refl_t P3 P2
H38 : bisim_up_to refl_t Q4 P4
H39 : bisim_up_to refl_t Q4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H34 : bisim_t Q3 (par P2 R1) P4 (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 (par P2 R1)
H36 : bisim_up_to refl_t P4 (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 (par P2 R1)
H36 : bisim_up_to refl_t P4 (par Q4 R1)
H37 : bisim_up_to refl_t P3 (par P2 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 (par P2 R1)
H36 : bisim_up_to refl_t P4 (par Q4 R1)
H37 : bisim_up_to refl_t P3 (par P2 R1)
H38 : bisim_up_to refl_t (par Q4 R1) P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 (par P2 R1)
H36 : bisim_up_to refl_t P4 (par Q4 R1)
H37 : bisim_up_to refl_t P3 (par P2 R1)
H38 : bisim_up_to refl_t (par Q4 R1) P4
H39 : bisim_up_to refl_t (par Q4 R1) Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one P A P3
H6 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one R A Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one S A P4
H23 : bisim_up_to bisim_context_t P2 Q4
H24 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one Q A Q6
H32 : bisim_up_to refl_t P4 Q6
H35 : bisim_up_to refl_t Q3 (par P2 R1)
H36 : bisim_up_to refl_t P4 (par Q4 R1)
H37 : bisim_up_to refl_t P3 (par P2 R1)
H38 : bisim_up_to refl_t (par Q4 R1) P4
H39 : bisim_up_to refl_t (par Q4 R1) Q6
H40 : bisim_up_to bisim_context_t (par P2 R1) (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 2:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H2.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H7 to H5.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H3.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H15 to H12.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H23 to H20.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists N4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists M.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists N4.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H13 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H21 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H29 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H30.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H34 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H40.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H41 to H31 H37 H36.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H41 to H35 H39 H38.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H32.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H44 : bisim_t (N W) (M1 W) (N1 W) (N3 W) \/ (exists P2 Q2,
bisim_t (N W) P2 (N1 W) Q2 /\ (exists R, P2 = par (M1 W) R /\
Q2 = par (N3 W) R))
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H44.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H45.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (M1 W)
H47 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H42 H46.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (M1 W)
H47 : bisim_up_to refl_t (N1 W) (N3 W)
H48 : bisim_up_to refl_t (M W) (M1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (M1 W)
H47 : bisim_up_to refl_t (N1 W) (N3 W)
H48 : bisim_up_to refl_t (M W) (M1 W)
H49 : bisim_up_to refl_t (N3 W) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H49 H43.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (M1 W)
H47 : bisim_up_to refl_t (N1 W) (N3 W)
H48 : bisim_up_to refl_t (M W) (M1 W)
H49 : bisim_up_to refl_t (N3 W) (N1 W)
H50 : bisim_up_to refl_t (N3 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H45 : bisim_t (N W) (par (M1 W) R1) (N1 W) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H45.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H42 H46.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H49 H43.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
H50 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H33 with R = R1.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (dn X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (dn X) N
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb S (dn X) N1
H21 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H22 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb Q (dn X) N4
H29 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M3 W) (N5 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : N4 W = N5 W
H39 : N1 W = M3 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (N1 W) (N4 W)
H46 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H47 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H48 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H49 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
H50 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
H51 : bisim_up_to bisim_context_t (par (M1 W) R1) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 3:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H2.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H8 to H5.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H3.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H17 to H12.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H4 : bisim_up_to refl_t S Q
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H26 to H21.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists N4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 3.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists M.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists N4.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 3.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) M
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) N
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H13.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) N1
H22 : bisim_context_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) N4
H31 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H31.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H22 : bisim_context_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H22.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H33 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1) \/ (exists P2 Q2,
bisim_t (N2 n1) P2 (M3 n1) Q2 /\ (exists R, P2 = par (M1 n1) R /\
Q2 = par (N3 n1) R))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H33.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
H38 : bisim_up_to refl_t (N3 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (M1 n1)
H36 : bisim_up_to refl_t (M3 n1) (N3 n1)
H37 : bisim_up_to refl_t (M2 n1) (M1 n1)
H38 : bisim_up_to refl_t (N3 n1) (M3 n1)
H39 : bisim_up_to refl_t (N3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H34 : bisim_t (N2 n1) (par (M1 n1) (R1 n1)) (M3 n1) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H14 H35.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H32.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
H39 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1 n1.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb P (up X) (z1\M2 z1)
H6 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb R (up X) (z1\N2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb S (up X) (z1\M3 z1)
H23 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H24 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb Q (up X) (z1\N5 z1)
H32 : bisim_up_to refl_t (M3 n1) (N5 n1)
H35 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H36 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H37 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
H39 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
H40 : bisim_up_to bisim_context_t (par (M1 n1) (R1 n1)) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 4:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H4.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H9 to H5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H3.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H18 to H12.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H2.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H27 to H21.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists P5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 4.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
one P A P5
Subgoal 4.2 is:
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists P5.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists Q1.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 4.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q1
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P2
H13 : refl_t P2 P3 Q1 Q3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P2 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H13.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A P1
H22 : bisim_context_t P1 P4 P3 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P5
H31 : refl_t P5 P6 P1 Q4
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H31.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H22 : bisim_context_t Q4 P4 P3 Q2
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H22.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H33 : bisim_t Q4 P4 P3 Q2 \/ (exists P2 Q1, bisim_t Q4 P2 P3 Q1 /\
(exists R, P2 = par P4 R /\ Q1 = par Q2 R))
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H33.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_t Q4 P4 P3 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 P4
H36 : bisim_up_to refl_t P3 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 P4
H36 : bisim_up_to refl_t P3 Q2
H37 : bisim_up_to refl_t P6 P4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 P4
H36 : bisim_up_to refl_t P3 Q2
H37 : bisim_up_to refl_t P6 P4
H38 : bisim_up_to refl_t Q2 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 P4
H36 : bisim_up_to refl_t P3 Q2
H37 : bisim_up_to refl_t P6 P4
H38 : bisim_up_to refl_t Q2 P3
H39 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H34 : bisim_t Q4 (par P4 R1) P3 (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 (par P4 R1)
H36 : bisim_up_to refl_t P3 (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 (par P4 R1)
H36 : bisim_up_to refl_t P3 (par Q2 R1)
H37 : bisim_up_to refl_t P6 (par P4 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 (par P4 R1)
H36 : bisim_up_to refl_t P3 (par Q2 R1)
H37 : bisim_up_to refl_t P6 (par P4 R1)
H38 : bisim_up_to refl_t (par Q2 R1) P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 (par P4 R1)
H36 : bisim_up_to refl_t P3 (par Q2 R1)
H37 : bisim_up_to refl_t P6 (par P4 R1)
H38 : bisim_up_to refl_t (par Q2 R1) P3
H39 : bisim_up_to refl_t (par Q2 R1) Q3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : one Q A Q3
H6 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : one S A P3
H14 : bisim_up_to refl_t P3 Q3
H15 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : one R A Q4
H23 : bisim_up_to bisim_context_t P4 Q2
H24 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : one P A P6
H32 : bisim_up_to refl_t P6 Q4
H35 : bisim_up_to refl_t Q4 (par P4 R1)
H36 : bisim_up_to refl_t P3 (par Q2 R1)
H37 : bisim_up_to refl_t P6 (par P4 R1)
H38 : bisim_up_to refl_t (par Q2 R1) P3
H39 : bisim_up_to refl_t (par Q2 R1) Q3
H40 : bisim_up_to bisim_context_t (par P4 R1) (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 5:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H4.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H10 to H5.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H3.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H18 to H12.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H2.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H26 to H20.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists M4.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4 /\ (exists M2 N2, forall W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 5.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists M4.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < exists N.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < split.
Subgoal 5.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < search.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H13 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H21 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H29 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H30 : refl_t (M W) (M2 W) (N W) (N2 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H30.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H34 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H34.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H40 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H40.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H41 to H31 H37 H36.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply H41 to H35 H39 H38.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H32 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H32.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H44 : bisim_t (M1 W) (M3 W) (M W) (N1 W) \/ (exists P2 Q2,
bisim_t (M1 W) P2 (M W) Q2 /\ (exists R, P2 = par (M3 W) R /\
Q2 = par (N1 W) R))
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H44.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H45.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (M3 W)
H47 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H43 H46.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (M3 W)
H47 : bisim_up_to refl_t (M W) (N1 W)
H48 : bisim_up_to refl_t (M4 W) (M3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (M3 W)
H47 : bisim_up_to refl_t (M W) (N1 W)
H48 : bisim_up_to refl_t (M4 W) (M3 W)
H49 : bisim_up_to refl_t (N1 W) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H49 H42.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (M3 W)
H47 : bisim_up_to refl_t (M W) (N1 W)
H48 : bisim_up_to refl_t (M4 W) (M3 W)
H49 : bisim_up_to refl_t (N1 W) (M W)
H50 : bisim_up_to refl_t (N1 W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H45 : bisim_t (M1 W) (par (M3 W) R1) (M W) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < case H45.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H43 H46.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_sym to H47.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisim_trans to H49 H42.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
H50 : bisim_up_to refl_t (par (N1 W) R1) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H33 with R = R1.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (dn X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (dn X) M
H13 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H15 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H16 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H18 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H19 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : oneb R (dn X) M1
H21 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H22 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H23 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H24 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H25 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H26 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H28 : oneb P (dn X) M4
H29 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H31 : bisim_up_to refl_t (M2 W) (N2 W)
H33 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H35 : bisim_up_to refl_t (M5 W) (N3 W)
H36 : N W = N2 W
H37 : M W = M2 W
H38 : M1 W = N3 W
H39 : M4 W = M5 W
H41 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H42 : bisim_up_to refl_t (M W) (N W)
H43 : bisim_up_to refl_t (M4 W) (M1 W)
H46 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H47 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H48 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H49 : bisim_up_to refl_t (par (N1 W) R1) (M W)
H50 : bisim_up_to refl_t (par (N1 W) R1) (N W)
H51 : bisim_up_to bisim_context_t (par (M3 W) R1) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < backchain CH.
Subgoal 6:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisim_context_sound_fst < intros.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H4 : bisim_up_to refl_t S Q
H5 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < case H4.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < apply H11 to H5.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H3 : bisim_up_to bisim_context_t R S
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < case H3.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < apply H20 to H12.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H2 : bisim_up_to refl_t P R
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < case H2.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < apply H29 to H21.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < exists M4.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4 /\ (exists M2 N2, nabla W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisim_context_sound_fst < split.
Subgoal 6.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_context_sound_fst < search.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisim_context_sound_fst < exists M4.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
bisim_context_sound_fst < exists N.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
bisim_context_sound_fst < intros.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_context_sound_fst < split.
Subgoal 6.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_context_sound_fst < search.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) N
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) M
H13 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N n1) +
bisim_context_sound_fst < case H13.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) M1
H22 : bisim_context_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) M4
H31 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N2 n1) +
bisim_context_sound_fst < case H31.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H22 : bisim_context_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < case H22.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H33 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1) \/ (exists P2 Q2,
bisim_t (N3 n1) P2 (M2 n1) Q2 /\ (exists R, P2 = par (M3 n1) R /\
Q2 = par (N1 n1) R))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < case H33.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < case H34.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
H38 : bisim_up_to refl_t (N1 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (M3 n1)
H36 : bisim_up_to refl_t (M2 n1) (N1 n1)
H37 : bisim_up_to refl_t (M5 n1) (M3 n1)
H38 : bisim_up_to refl_t (N1 n1) (M2 n1)
H39 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < backchain CH.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H34 : bisim_t (N3 n1) (par (M3 n1) (R1 n1)) (M2 n1) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < case H34.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_trans to H32 H35.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_sym to H36.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisim_trans to H38 H14.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
H39 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < apply bisimUpToBisimAndContext_cong to H23 with R = R1 n1.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : oneb Q (up X) (z1\N2 z1)
H6 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H7 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H8 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H10 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H11 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H12 : oneb S (up X) (z1\M2 z1)
H14 : bisim_up_to refl_t (M2 n1) (N2 n1)
H15 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H16 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H17 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H18 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H19 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H20 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H21 : oneb R (up X) (z1\N3 z1)
H23 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H24 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H25 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H26 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H27 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H28 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H29 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H30 : oneb P (up X) (z1\M5 z1)
H32 : bisim_up_to refl_t (M5 n1) (N3 n1)
H35 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H36 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H37 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H38 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
H39 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
H40 : bisim_up_to bisim_context_t (par (M3 n1) (R1 n1)) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisim_context_sound_fst < backchain CH.
Proof completed.
Abella < Theorem bisim_context_sound_snd :
is_sound_snd bisim_context_t.
============================
is_sound_snd bisim_context_t
bisim_context_sound_snd < unfold.
============================
forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
bisim_context_sound_snd < intros.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisim_context_sound_snd < apply bisim_refl with P = P.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H2 : bisim_up_to refl_t P P
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisim_context_sound_snd < apply bisim_refl with P = Q.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisim_context_sound_snd < exists P.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P S /\
bisim_up_to refl_t S Q
bisim_context_sound_snd < exists Q.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H2 : bisim_up_to refl_t P P
H3 : bisim_up_to refl_t Q Q
============================
bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P Q /\
bisim_up_to refl_t Q Q
bisim_context_sound_snd < search.
Proof completed.
Abella < Theorem bisim_context_sound :
is_sound bisim_context_t.
============================
is_sound bisim_context_t
bisim_context_sound < unfold.
============================
forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
bisim_context_sound < intros.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
============================
bisim_up_to refl_t P Q
bisim_context_sound < apply bisim_context_sound_snd.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H2 : is_sound_snd bisim_context_t
============================
bisim_up_to refl_t P Q
bisim_context_sound < case H2.
Variables: P, Q
H1 : bisim_up_to bisim_context_t P Q
H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
============================
bisim_up_to refl_t P Q
bisim_context_sound < apply H3 to H1.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_context_t P Q
H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_context_t R S
H6 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q
bisim_context_sound < apply bisim_context_sound_fst.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_context_t P Q
H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_context_t R S
H6 : bisim_up_to refl_t S Q
H7 : is_sound_fst bisim_context_t
============================
bisim_up_to refl_t P Q
bisim_context_sound < case H7.
Variables: P, Q, R, S
H1 : bisim_up_to bisim_context_t P Q
H3 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H4 : bisim_up_to refl_t P R
H5 : bisim_up_to bisim_context_t R S
H6 : bisim_up_to refl_t S Q
H8 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
============================
bisim_up_to refl_t P Q
bisim_context_sound < backchain H8.
Proof completed.
Abella < Define upTo1ImpliesUpTo2 : (proc -> proc -> proc -> proc -> prop) -> (proc -> proc -> proc -> proc -> prop) -> prop by
upTo1ImpliesUpTo2 Upto1 Upto2 := forall P1 P2 Q1 Q2, Upto1 P1 P2 Q1 Q2 -> Upto2 P1 P2 Q1 Q2.
Abella < Define bisim1ImpliesBisim2 : (proc -> proc -> proc -> proc -> prop) -> (proc -> proc -> proc -> proc -> prop) -> prop by
bisim1ImpliesBisim2 Upto1 Upto2 := forall P Q, upTo1ImpliesUpTo2 Upto1 Upto2 -> bisim_up_to Upto1 P Q ->
bisim_up_to Upto2 P Q.
Abella < Theorem bisim_implies_bisimB :
bisim1ImpliesBisim2 refl_t bisim_t.
============================
bisim1ImpliesBisim2 refl_t bisim_t
bisim_implies_bisimB < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t -> bisim_up_to refl_t P Q ->
bisim_up_to bisim_t P Q
bisim_implies_bisimB < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t -> bisim_up_to refl_t P Q ->
bisim_up_to bisim_t P Q #
bisim_implies_bisimB < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t P Q #
bisim_implies_bisimB < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\ bisim_up_to bisim_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P2 Q1, bisim_t P1 P2 Q2 Q1 /\ bisim_up_to bisim_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, bisim_t P1 P3 Q2 Q1 /\ bisim_up_to bisim_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to bisim_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\ bisim_up_to bisim_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1 Q2, bisim_t P2 P1 Q1 Q2 /\ bisim_up_to bisim_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q2, bisim_t P2 P3 Q1 Q2 /\ bisim_up_to bisim_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to bisim_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisim_implies_bisimB < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisim_implies_bisimB < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisim_implies_bisimB < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisim_implies_bisimB < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisim_implies_bisimB < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisim_implies_bisimB < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisim_implies_bisimB < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisim_implies_bisimB < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisim_implies_bisimB < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_t (M2 n1) (N2 n1) +
bisim_implies_bisimB < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_t (M2 n1) (N2 n1) +
bisim_implies_bisimB < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
============================
bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_t (M2 n1) (N2 n1) +
bisim_implies_bisimB < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_t (M2 n1) (N2 n1) +
bisim_implies_bisimB < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimT :
bisim1ImpliesBisim2 refl_t transitivity_t.
============================
bisim1ImpliesBisim2 refl_t transitivity_t
bisim_implies_bisimT < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
bisim_implies_bisimT < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q #
bisim_implies_bisimT < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
bisim_up_to transitivity_t P Q #
bisim_implies_bisimT < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
bisim_up_to transitivity_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
bisim_up_to transitivity_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P2 Q1, transitivity_t P1 P2 Q2 Q1 /\
bisim_up_to transitivity_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, transitivity_t P1 P3 Q2 Q1 /\
bisim_up_to transitivity_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
transitivity_t P1 P3 Q2 Q3 /\ bisim_up_to transitivity_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
transitivity_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to transitivity_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to transitivity_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to transitivity_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
transitivity_t P1 P2 Q1 Q2 /\ bisim_up_to transitivity_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, transitivity_t P1 P2 Q1 Q2 /\
bisim_up_to transitivity_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
bisim_up_to transitivity_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
bisim_up_to transitivity_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1 Q2, transitivity_t P2 P1 Q1 Q2 /\
bisim_up_to transitivity_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q2, transitivity_t P2 P3 Q1 Q2 /\
bisim_up_to transitivity_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
transitivity_t P2 P3 Q1 Q3 /\ bisim_up_to transitivity_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
transitivity_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to transitivity_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to transitivity_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to transitivity_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
transitivity_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to transitivity_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +))
bisim_implies_bisimT < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
bisim_implies_bisimT < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
bisim_implies_bisimT < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
bisim_implies_bisimT < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +)
bisim_implies_bisimT < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
bisim_implies_bisimT < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
bisim_implies_bisimT < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
bisim_implies_bisimT < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, transitivity_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to transitivity_t (M2 W) (N2 W) +
bisim_implies_bisimT < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
bisim_implies_bisimT < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
bisim_implies_bisimT < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
============================
transitivity_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
bisim_implies_bisimT < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t transitivity_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to transitivity_t (M2 n1) (N2 n1) +
bisim_implies_bisimT < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimK :
bisim1ImpliesBisim2 refl_t context_t.
============================
bisim1ImpliesBisim2 refl_t context_t
bisim_implies_bisimK < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q
bisim_implies_bisimK < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q #
bisim_implies_bisimK < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
bisim_up_to context_t P Q #
bisim_implies_bisimK < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, context_t P1 P2 Q2 Q1 /\
bisim_up_to context_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, context_t P1 P2 Q2 Q1 /\ bisim_up_to context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P2 Q1, context_t P1 P2 Q2 Q1 /\ bisim_up_to context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, context_t P1 P3 Q2 Q1 /\ bisim_up_to context_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
context_t P1 P2 Q1 Q2 /\ bisim_up_to context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, context_t P1 P2 Q1 Q2 /\
bisim_up_to context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, context_t P2 P1 Q1 Q2 /\
bisim_up_to context_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, context_t P2 P1 Q1 Q2 /\ bisim_up_to context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1 Q2, context_t P2 P1 Q1 Q2 /\ bisim_up_to context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q2, context_t P2 P3 Q1 Q2 /\ bisim_up_to context_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +))
bisim_implies_bisimK < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
bisim_implies_bisimK < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
bisim_implies_bisimK < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
bisim_implies_bisimK < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +)
bisim_implies_bisimK < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
bisim_implies_bisimK < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
bisim_implies_bisimK < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
bisim_implies_bisimK < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W) +
bisim_implies_bisimK < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to context_t (M2 n1) (N2 n1) +
bisim_implies_bisimK < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to context_t (M2 n1) (N2 n1) +
bisim_implies_bisimK < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
============================
context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to context_t (M2 n1) (N2 n1) +
bisim_implies_bisimK < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to context_t (M2 n1) (N2 n1) +
bisim_implies_bisimK < backchain CH.
Proof completed.
Abella < Theorem bisim_implies_bisimBK :
bisim1ImpliesBisim2 refl_t bisim_context_t.
============================
bisim1ImpliesBisim2 refl_t bisim_context_t
bisim_implies_bisimBK < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q
bisim_implies_bisimBK < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q #
bisim_implies_bisimBK < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
bisim_up_to bisim_context_t P Q #
bisim_implies_bisimBK < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
bisim_up_to bisim_context_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : refl_t P1 P3 Q2 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
bisim_up_to bisim_context_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : refl_t P2 P3 Q1 Q3
H12 : bisim_up_to refl_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : refl_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisim_implies_bisimBK < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H2 : bisim_up_to refl_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisim_implies_bisimBK < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisim_implies_bisimBK < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisim_implies_bisimBK < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisim_implies_bisimBK < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisim_implies_bisimBK < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisim_implies_bisimBK < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisim_implies_bisimBK < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisim_implies_bisimBK < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisim_implies_bisimBK < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisim_implies_bisimBK < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisim_implies_bisimBK < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 refl_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisim_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem bisimB_implies_bisimBK :
bisim1ImpliesBisim2 bisim_t bisim_context_t.
============================
bisim1ImpliesBisim2 bisim_t bisim_context_t
bisimB_implies_bisimBK < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q
bisimB_implies_bisimBK < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q #
bisimB_implies_bisimBK < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_context_t P Q #
bisimB_implies_bisimBK < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
bisim_up_to bisim_context_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
bisim_up_to bisim_context_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimB_implies_bisimBK < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H2 : bisim_up_to bisim_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimB_implies_bisimBK < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimB_implies_bisimBK < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimB_implies_bisimBK < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimB_implies_bisimBK < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimB_implies_bisimBK < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimB_implies_bisimBK < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimB_implies_bisimBK < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimB_implies_bisimBK < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimB_implies_bisimBK < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimB_implies_bisimBK < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimB_implies_bisimBK < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 bisim_t bisim_context_t ->
bisim_up_to bisim_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 bisim_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimB_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem bisimK_implies_bisimBK :
bisim1ImpliesBisim2 context_t bisim_context_t.
============================
bisim1ImpliesBisim2 context_t bisim_context_t
bisimK_implies_bisimBK < unfold.
============================
forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q
bisimK_implies_bisimBK < coinduction.
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
============================
forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q #
bisimK_implies_bisimBK < intros.
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
bisim_up_to bisim_context_t P Q #
bisimK_implies_bisimBK < unfold.
Subgoal 1:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H2.
Subgoal 1:
Variables: P, Q, A, P1
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H4 to H3.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists P2 Q1, bisim_context_t P1 P2 Q2 Q1 /\
bisim_up_to bisim_context_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists P3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists Q1, bisim_context_t P1 P3 Q2 Q1 /\
bisim_up_to bisim_context_t P3 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists Q3.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H1.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P3 Q2 Q3
Subgoal 1.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
context_t P1 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : context_t P1 P3 Q2 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain CH.
Subgoal 2:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H2.
Subgoal 2:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H5 to H3.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists M2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists N2.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H1.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain CH.
Subgoal 3:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H2.
Subgoal 3:
Variables: P, Q, X, M
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H6 to H3.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists M2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists N2.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H1.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain CH.
Subgoal 4:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H2.
Subgoal 4:
Variables: P, Q, A, Q1
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H7 to H3.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists P1 Q2, bisim_context_t P2 P1 Q1 Q2 /\
bisim_up_to bisim_context_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists P3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
exists Q2, bisim_context_t P2 P3 Q1 Q2 /\
bisim_up_to bisim_context_t P3 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists Q3.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H1.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t P2 P3 Q1 Q3
Subgoal 4.2.2 is:
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : one Q A Q1
H4 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q1 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P2
H11 : context_t P2 P3 Q1 Q3
H12 : bisim_up_to context_t P3 Q3
============================
bisim_up_to bisim_context_t P3 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain CH.
Subgoal 5:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H2.
Subgoal 5:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H8 to H3.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists M2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < exists N2.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < case H1.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
H14 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M W) (M2 W) (N W) (N2 W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (dn X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H12 : context_t (M W) (M2 W) (N W) (N2 W)
H13 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < backchain CH.
Subgoal 6:
Variables: P, Q
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
bisimK_implies_bisimBK < intros.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H2 : bisim_up_to context_t P Q
H3 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimK_implies_bisimBK < case H2.
Subgoal 6:
Variables: P, Q, X, N
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimK_implies_bisimBK < apply H9 to H3.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimK_implies_bisimBK < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
bisimK_implies_bisimBK < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimK_implies_bisimBK < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimK_implies_bisimBK < exists M2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimK_implies_bisimBK < exists N2.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
bisimK_implies_bisimBK < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimK_implies_bisimBK < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimK_implies_bisimBK < case H1.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
H13 : forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 ->
bisim_context_t P1 P2 Q1 Q2
============================
bisim_context_t (M n1) (M2 n1) (N n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimK_implies_bisimBK < backchain H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
CH : forall P Q, upTo1ImpliesUpTo2 context_t bisim_context_t ->
bisim_up_to context_t P Q -> bisim_up_to bisim_context_t P Q +
H1 : upTo1ImpliesUpTo2 context_t bisim_context_t
H3 : oneb Q (up X) N
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to bisim_context_t (M2 n1) (N2 n1) +
bisimK_implies_bisimBK < backchain CH.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimB :
upTo1ImpliesUpTo2 refl_t bisim_t.
============================
upTo1ImpliesUpTo2 refl_t bisim_t
upToBisim_implie_upToBisimB < unfold.
============================
forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimB < intros.
Variables: P1, P2, Q1, Q2
H1 : refl_t P1 P2 Q1 Q2
============================
bisim_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimB < case H1.
Variables: P1, P2, Q1, Q2
============================
bisim_t P2 P2 Q2 Q2
upToBisim_implie_upToBisimB < unfold.
Subgoal 1:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t P2 P2
Subgoal 2 is:
bisim_up_to refl_t Q2 Q2
upToBisim_implie_upToBisimB < backchain bisim_refl.
Subgoal 2:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t Q2 Q2
upToBisim_implie_upToBisimB < backchain bisim_refl.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimT :
upTo1ImpliesUpTo2 refl_t transitivity_t.
============================
upTo1ImpliesUpTo2 refl_t transitivity_t
upToBisim_implie_upToBisimT < unfold.
============================
forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> transitivity_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimT < intros.
Variables: P1, P2, Q1, Q2
H1 : refl_t P1 P2 Q1 Q2
============================
transitivity_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimT < case H1.
Variables: P1, P2, Q1, Q2
============================
transitivity_t P2 P2 Q2 Q2
upToBisim_implie_upToBisimT < unfold.
Variables: P1, P2, Q1, Q2
============================
P2 = P2 /\ Q2 = Q2 \/ (exists P1 Q1, bisim_up_to transitivity_t P2 P1 /\
bisim_up_to transitivity_t P1 P2 /\ bisim_up_to transitivity_t Q2 Q1 /\
bisim_up_to transitivity_t Q1 Q2)
upToBisim_implie_upToBisimT < left.
Variables: P1, P2, Q1, Q2
============================
P2 = P2 /\ Q2 = Q2
upToBisim_implie_upToBisimT < search.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimK :
upTo1ImpliesUpTo2 refl_t context_t.
============================
upTo1ImpliesUpTo2 refl_t context_t
upToBisim_implie_upToBisimK < unfold.
============================
forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> context_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimK < intros.
Variables: P1, P2, Q1, Q2
H1 : refl_t P1 P2 Q1 Q2
============================
context_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimK < case H1.
Variables: P1, P2, Q1, Q2
============================
context_t P2 P2 Q2 Q2
upToBisim_implie_upToBisimK < unfold.
Variables: P1, P2, Q1, Q2
============================
P2 = P2 /\ Q2 = Q2 \/ (exists R, P2 = par P2 R /\ Q2 = par Q2 R)
upToBisim_implie_upToBisimK < left.
Variables: P1, P2, Q1, Q2
============================
P2 = P2 /\ Q2 = Q2
upToBisim_implie_upToBisimK < search.
Proof completed.
Abella < Theorem upToBisim_implie_upToBisimBK :
upTo1ImpliesUpTo2 refl_t bisim_context_t.
============================
upTo1ImpliesUpTo2 refl_t bisim_context_t
upToBisim_implie_upToBisimBK < unfold.
============================
forall P1 P2 Q1 Q2, refl_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimBK < intros.
Variables: P1, P2, Q1, Q2
H1 : refl_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P2 Q1 Q2
upToBisim_implie_upToBisimBK < case H1.
Variables: P1, P2, Q1, Q2
============================
bisim_context_t P2 P2 Q2 Q2
upToBisim_implie_upToBisimBK < unfold.
Variables: P1, P2, Q1, Q2
============================
bisim_t P2 P2 Q2 Q2 \/ (exists P1 Q1, bisim_t P2 P1 Q2 Q1 /\ (exists R,
P1 = par P2 R /\ Q1 = par Q2 R))
upToBisim_implie_upToBisimBK < left.
Variables: P1, P2, Q1, Q2
============================
bisim_t P2 P2 Q2 Q2
upToBisim_implie_upToBisimBK < unfold.
Subgoal 1:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t P2 P2
Subgoal 2 is:
bisim_up_to refl_t Q2 Q2
upToBisim_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t Q2 Q2
upToBisim_implie_upToBisimBK < backchain bisim_refl.
Proof completed.
Abella < Theorem upToBisimB_implie_upToBisimBK :
upTo1ImpliesUpTo2 bisim_t bisim_context_t.
============================
upTo1ImpliesUpTo2 bisim_t bisim_context_t
upToBisimB_implie_upToBisimBK < unfold.
============================
forall P1 P2 Q1 Q2, bisim_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
upToBisimB_implie_upToBisimBK < intros.
Variables: P1, P2, Q1, Q2
H1 : bisim_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P2 Q1 Q2
upToBisimB_implie_upToBisimBK < case H1.
Variables: P1, P2, Q1, Q2
H2 : bisim_up_to refl_t P1 P2
H3 : bisim_up_to refl_t Q1 Q2
============================
bisim_context_t P1 P2 Q1 Q2
upToBisimB_implie_upToBisimBK < unfold.
Variables: P1, P2, Q1, Q2
H2 : bisim_up_to refl_t P1 P2
H3 : bisim_up_to refl_t Q1 Q2
============================
bisim_t P1 P2 Q1 Q2 \/ (exists P3 Q3, bisim_t P1 P3 Q1 Q3 /\ (exists R,
P3 = par P2 R /\ Q3 = par Q2 R))
upToBisimB_implie_upToBisimBK < left.
Variables: P1, P2, Q1, Q2
H2 : bisim_up_to refl_t P1 P2
H3 : bisim_up_to refl_t Q1 Q2
============================
bisim_t P1 P2 Q1 Q2
upToBisimB_implie_upToBisimBK < unfold.
Subgoal 1:
Variables: P1, P2, Q1, Q2
H2 : bisim_up_to refl_t P1 P2
H3 : bisim_up_to refl_t Q1 Q2
============================
bisim_up_to refl_t P1 P2
Subgoal 2 is:
bisim_up_to refl_t Q1 Q2
upToBisimB_implie_upToBisimBK < search.
Subgoal 2:
Variables: P1, P2, Q1, Q2
H2 : bisim_up_to refl_t P1 P2
H3 : bisim_up_to refl_t Q1 Q2
============================
bisim_up_to refl_t Q1 Q2
upToBisimB_implie_upToBisimBK < search.
Proof completed.
Abella < Theorem upToBisimK_implie_upToBisimBK :
upTo1ImpliesUpTo2 context_t bisim_context_t.
============================
upTo1ImpliesUpTo2 context_t bisim_context_t
upToBisimK_implie_upToBisimBK < unfold.
============================
forall P1 P2 Q1 Q2, context_t P1 P2 Q1 Q2 -> bisim_context_t P1 P2 Q1 Q2
upToBisimK_implie_upToBisimBK < intros.
Variables: P1, P2, Q1, Q2
H1 : context_t P1 P2 Q1 Q2
============================
bisim_context_t P1 P2 Q1 Q2
upToBisimK_implie_upToBisimBK < case H1.
Variables: P1, P2, Q1, Q2
H2 : P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R)
============================
bisim_context_t P1 P2 Q1 Q2
upToBisimK_implie_upToBisimBK < unfold.
Variables: P1, P2, Q1, Q2
H2 : P1 = P2 /\ Q1 = Q2 \/ (exists R, P1 = par P2 R /\ Q1 = par Q2 R)
============================
bisim_t P1 P2 Q1 Q2 \/ (exists P3 Q3, bisim_t P1 P3 Q1 Q3 /\ (exists R,
P3 = par P2 R /\ Q3 = par Q2 R))
upToBisimK_implie_upToBisimBK < case H2.
Subgoal 1:
Variables: P1, P2, Q1, Q2
============================
bisim_t P2 P2 Q2 Q2 \/ (exists P3 Q3, bisim_t P2 P3 Q2 Q3 /\ (exists R,
P3 = par P2 R /\ Q3 = par Q2 R))
Subgoal 2 is:
bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
Q3 = par Q2 R1))
upToBisimK_implie_upToBisimBK < left.
Subgoal 1:
Variables: P1, P2, Q1, Q2
============================
bisim_t P2 P2 Q2 Q2
Subgoal 2 is:
bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
Q3 = par Q2 R1))
upToBisimK_implie_upToBisimBK < unfold.
Subgoal 1.1:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t P2 P2
Subgoal 1.2 is:
bisim_up_to refl_t Q2 Q2
Subgoal 2 is:
bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
Q3 = par Q2 R1))
upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 1.2:
Variables: P1, P2, Q1, Q2
============================
bisim_up_to refl_t Q2 Q2
Subgoal 2 is:
bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
Q3 = par Q2 R1))
upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2:
Variables: P1, P2, Q1, Q2, R
============================
bisim_t (par P2 R) P2 (par Q2 R) Q2 \/ (exists P3 Q3,
bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1, P3 = par P2 R1 /\
Q3 = par Q2 R1))
upToBisimK_implie_upToBisimBK < right.
Subgoal 2:
Variables: P1, P2, Q1, Q2, R
============================
exists P3 Q3, bisim_t (par P2 R) P3 (par Q2 R) Q3 /\ (exists R1,
P3 = par P2 R1 /\ Q3 = par Q2 R1)
upToBisimK_implie_upToBisimBK < exists par P2 R.
Subgoal 2:
Variables: P1, P2, Q1, Q2, R
============================
exists Q3, bisim_t (par P2 R) (par P2 R) (par Q2 R) Q3 /\ (exists R1,
par P2 R = par P2 R1 /\ Q3 = par Q2 R1)
upToBisimK_implie_upToBisimBK < exists par Q2 R.
Subgoal 2:
Variables: P1, P2, Q1, Q2, R
============================
bisim_t (par P2 R) (par P2 R) (par Q2 R) (par Q2 R) /\ (exists R1,
par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1)
upToBisimK_implie_upToBisimBK < split.
Subgoal 2.1:
Variables: P1, P2, Q1, Q2, R
============================
bisim_t (par P2 R) (par P2 R) (par Q2 R) (par Q2 R)
Subgoal 2.2 is:
exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1
upToBisimK_implie_upToBisimBK < unfold.
Subgoal 2.1.1:
Variables: P1, P2, Q1, Q2, R
============================
bisim_up_to refl_t (par P2 R) (par P2 R)
Subgoal 2.1.2 is:
bisim_up_to refl_t (par Q2 R) (par Q2 R)
Subgoal 2.2 is:
exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1
upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2.1.2:
Variables: P1, P2, Q1, Q2, R
============================
bisim_up_to refl_t (par Q2 R) (par Q2 R)
Subgoal 2.2 is:
exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1
upToBisimK_implie_upToBisimBK < backchain bisim_refl.
Subgoal 2.2:
Variables: P1, P2, Q1, Q2, R
============================
exists R1, par P2 R = par P2 R1 /\ par Q2 R = par Q2 R1
upToBisimK_implie_upToBisimBK < exists R.
Subgoal 2.2:
Variables: P1, P2, Q1, Q2, R
============================
par P2 R = par P2 R /\ par Q2 R = par Q2 R
upToBisimK_implie_upToBisimBK < search.
Proof completed.
Abella < Define equiv_rel : (proc -> proc -> prop) -> prop by
equiv_rel Rel := (forall P, Rel P P) /\ (forall P Q, Rel P Q -> Rel Q P) /\ (forall P Q R,
Rel P Q -> Rel Q R -> Rel P R).
Abella < Define bisim_is_equiv : prop by
bisim_is_equiv := equiv_rel (bisim_up_to refl_t).
Abella < Define bisimB_is_equiv : prop by
bisimB_is_equiv := equiv_rel (bisim_up_to bisim_t).
Abella < Define bisimT_is_equiv : prop by
bisimT_is_equiv := equiv_rel (bisim_up_to transitivity_t).
Abella < Define subst_rel : (proc -> proc -> prop) -> prop by
subst_rel Rel := forall P Q R, Rel P Q -> Rel (par P R) (par Q R).
Abella < Define cong_rel : (proc -> proc -> prop) -> prop by
cong_rel Rel := equiv_rel Rel /\ subst_rel Rel.
Abella < Define bisim_is_subst : prop by
bisim_is_subst := subst_rel (bisim_up_to refl_t).
Abella < Define bisimK_is_subst : prop by
bisimK_is_subst := subst_rel (bisim_up_to context_t).
Abella < Define bisimBK_is_subst : prop by
bisimBK_is_subst := subst_rel (bisim_up_to bisim_context_t).
Abella < Define bisim_is_cong : prop by
bisim_is_cong := cong_rel (bisim_up_to refl_t).
Abella < Define bisimK_is_cong : prop by
bisimK_is_cong := cong_rel (bisim_up_to context_t).
Abella < Define bisimBK_is_cong : prop by
bisimBK_is_cong := cong_rel (bisim_up_to bisim_context_t).
Abella < Theorem bisimB_soundIff_completeness :
bisim_is_equiv -> is_sound bisim_t -> bisimB_is_equiv.
============================
bisim_is_equiv -> is_sound bisim_t -> bisimB_is_equiv
bisimB_soundIff_completeness < intros.
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
bisimB_is_equiv
bisimB_soundIff_completeness < unfold.
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
equiv_rel (bisim_up_to bisim_t)
bisimB_soundIff_completeness < unfold.
Subgoal 1:
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
forall P, bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < intros.
Subgoal 1:
Variables: P
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H1.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H3 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H3.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H4 with P = P.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 1:
Variables: P
H2 : is_sound bisim_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < backchain implies.
Subgoal 2:
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < intros.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H2 : is_sound bisim_t
H3 : bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H2.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H4 to H3.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H1.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H6 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H6.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H8 to H5.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to bisim_t P Q
H4 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < backchain implies.
Subgoal 3:
H1 : bisim_is_equiv
H2 : is_sound bisim_t
============================
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < intros.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H2 : is_sound bisim_t
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H2.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H5 to H3.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H5 to H4.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H1.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H8 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case H8.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply H11 to H6 H7.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply upToBisim_implie_upToBisimB.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < apply bisim_implies_bisimB.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < case implies : loadLemma.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to bisim_t P Q
H4 : bisim_up_to bisim_t Q R
H5 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_t P R
bisimB_soundIff_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimT_soundIff_completeness :
bisim_is_equiv -> is_sound transitivity_t -> bisimT_is_equiv.
============================
bisim_is_equiv -> is_sound transitivity_t -> bisimT_is_equiv
bisimT_soundIff_completeness < intros.
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
bisimT_is_equiv
bisimT_soundIff_completeness < unfold.
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
equiv_rel (bisim_up_to transitivity_t)
bisimT_soundIff_completeness < unfold.
Subgoal 1:
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
forall P, bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < intros.
Subgoal 1:
Variables: P
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H1.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H3 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H3.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H4 with P = P.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 1:
Variables: P
H2 : is_sound transitivity_t
H4 : forall P, bisim_up_to refl_t P P
H5 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H6 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H7 : bisim_up_to refl_t P P
H8 : upTo1ImpliesUpTo2 refl_t transitivity_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
============================
bisim_up_to transitivity_t P P
Subgoal 2 is:
forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < backchain implies.
Subgoal 2:
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
forall P Q, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < intros.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
H3 : bisim_up_to transitivity_t P Q
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H2.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H4 to H3.
Subgoal 2:
Variables: P, Q
H1 : bisim_is_equiv
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H1.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H6 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H6.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H8 to H5.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 2:
Variables: P, Q
H3 : bisim_up_to transitivity_t P Q
H4 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t Q P
H11 : upTo1ImpliesUpTo2 refl_t transitivity_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
============================
bisim_up_to transitivity_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < backchain implies.
Subgoal 3:
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
============================
forall P Q R, bisim_up_to transitivity_t P Q ->
bisim_up_to transitivity_t Q R -> bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < intros.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H2 : is_sound transitivity_t
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H2.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H5 to H3.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H5 to H4.
Subgoal 3:
Variables: P, Q, R
H1 : bisim_is_equiv
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H1.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H8 : equiv_rel (bisim_up_to refl_t)
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case H8.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply H11 to H6 H7.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply upToBisim_implie_upToBisimT.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < apply bisim_implies_bisimT.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
loadLemma : bisim1ImpliesBisim2 refl_t transitivity_t
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < case implies : loadLemma.
Subgoal 3:
Variables: P, Q, R
H3 : bisim_up_to transitivity_t P Q
H4 : bisim_up_to transitivity_t Q R
H5 : forall P Q, bisim_up_to transitivity_t P Q -> bisim_up_to refl_t P Q
H6 : bisim_up_to refl_t P Q
H7 : bisim_up_to refl_t Q R
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : upTo1ImpliesUpTo2 refl_t transitivity_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t transitivity_t ->
bisim_up_to refl_t P Q -> bisim_up_to transitivity_t P Q
============================
bisim_up_to transitivity_t P R
bisimT_soundIff_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimK_and_subst_completeness :
bisim_is_subst -> is_sound context_t -> bisimK_is_subst.
============================
bisim_is_subst -> is_sound context_t -> bisimK_is_subst
bisimK_and_subst_completeness < intros.
H1 : bisim_is_subst
H2 : is_sound context_t
============================
bisimK_is_subst
bisimK_and_subst_completeness < unfold.
H1 : bisim_is_subst
H2 : is_sound context_t
============================
subst_rel (bisim_up_to context_t)
bisimK_and_subst_completeness < unfold.
H1 : bisim_is_subst
H2 : is_sound context_t
============================
forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < intros.
Variables: P, Q, R
H1 : bisim_is_subst
H2 : is_sound context_t
H3 : bisim_up_to context_t P Q
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < case H2.
Variables: P, Q, R
H1 : bisim_is_subst
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < apply H4 to H3.
Variables: P, Q, R
H1 : bisim_is_subst
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < case H1.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H6 : subst_rel (bisim_up_to refl_t)
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < case H6.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < apply H7 to H5 with R = R.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H8 : bisim_up_to refl_t (par P R) (par Q R)
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < apply upToBisim_implie_upToBisimK.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H8 : bisim_up_to refl_t (par P R) (par Q R)
H9 : upTo1ImpliesUpTo2 refl_t context_t
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < apply bisim_implies_bisimK.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H8 : bisim_up_to refl_t (par P R) (par Q R)
H9 : upTo1ImpliesUpTo2 refl_t context_t
loadLemma : bisim1ImpliesBisim2 refl_t context_t
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < case implies : loadLemma.
Variables: P, Q, R
H3 : bisim_up_to context_t P Q
H4 : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H8 : bisim_up_to refl_t (par P R) (par Q R)
H9 : upTo1ImpliesUpTo2 refl_t context_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t context_t ->
bisim_up_to refl_t P Q -> bisim_up_to context_t P Q
============================
bisim_up_to context_t (par P R) (par Q R)
bisimK_and_subst_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimBK_and_subst_completeness :
bisim_is_cong -> is_sound bisim_context_t -> bisimBK_is_subst.
============================
bisim_is_cong -> is_sound bisim_context_t -> bisimBK_is_subst
bisimBK_and_subst_completeness < intros.
H1 : bisim_is_cong
H2 : is_sound bisim_context_t
============================
bisimBK_is_subst
bisimBK_and_subst_completeness < unfold.
H1 : bisim_is_cong
H2 : is_sound bisim_context_t
============================
subst_rel (bisim_up_to bisim_context_t)
bisimBK_and_subst_completeness < unfold.
H1 : bisim_is_cong
H2 : is_sound bisim_context_t
============================
forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < intros.
Variables: P, Q, R
H1 : bisim_is_cong
H2 : is_sound bisim_context_t
H3 : bisim_up_to bisim_context_t P Q
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < case H2.
Variables: P, Q, R
H1 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < apply H4 to H3.
Variables: P, Q, R
H1 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < case H1.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H6 : cong_rel (bisim_up_to refl_t)
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < case H6.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H8 : subst_rel (bisim_up_to refl_t)
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < case H8.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H9 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < apply H9 to H5 with R = R.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H9 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H10 : bisim_up_to refl_t (par P R) (par Q R)
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < apply upToBisim_implie_upToBisimBK.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H9 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H10 : bisim_up_to refl_t (par P R) (par Q R)
H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < apply bisim_implies_bisimBK.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H9 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H10 : bisim_up_to refl_t (par P R) (par Q R)
H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_context_t
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < case implies : loadLemma.
Variables: P, Q, R
H3 : bisim_up_to bisim_context_t P Q
H4 : forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
H5 : bisim_up_to refl_t P Q
H7 : equiv_rel (bisim_up_to refl_t)
H9 : forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
H10 : bisim_up_to refl_t (par P R) (par Q R)
H11 : upTo1ImpliesUpTo2 refl_t bisim_context_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_context_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_context_t P Q
============================
bisim_up_to bisim_context_t (par P R) (par Q R)
bisimBK_and_subst_completeness < backchain implies.
Proof completed.
Abella < Theorem bisimB_soundIff_soundness :
bisimB_is_equiv -> bisim_is_equiv -> is_sound bisim_t.
============================
bisimB_is_equiv -> bisim_is_equiv -> is_sound bisim_t
bisimB_soundIff_soundness < intros.
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
============================
is_sound bisim_t
bisimB_soundIff_soundness < unfold.
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q
bisimB_soundIff_soundness < coinduction.
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q #
bisimB_soundIff_soundness < intros.
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H3 : bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t P Q #
bisimB_soundIff_soundness < case H3.
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t P Q #
bisimB_soundIff_soundness < unfold.
Subgoal 1:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 1:
Variables: P, Q, A, P1
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H4 to H10.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
bisim_up_to refl_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists P1.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists Q2.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
refl_t P1 P1 Q2 Q2
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H1.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
H14 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H14.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : bisim_t P1 P3 Q2 Q3
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H12.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P1 P3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P1 P3
H21 : bisim_up_to bisim_t Q2 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P1 P3
H21 : bisim_up_to bisim_t Q2 Q3
H22 : bisim_up_to bisim_t P1 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P1 P3
H21 : bisim_up_to bisim_t Q2 Q3
H22 : bisim_up_to bisim_t P1 Q3
H23 : bisim_up_to bisim_t Q3 Q2
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P1 P3
H19 : bisim_up_to refl_t Q2 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P1 P3
H21 : bisim_up_to bisim_t Q2 Q3
H22 : bisim_up_to bisim_t P1 Q3
H23 : bisim_up_to bisim_t Q3 Q2
H24 : bisim_up_to bisim_t P1 Q2
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < backchain CH.
Subgoal 2:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 2:
Variables: P, Q, X, M
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H5 to H10.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists M.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists N.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H12 with W = W.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H1.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H15 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H15.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H13.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H20.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H18 to H21 H14.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H22.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
H24 : bisim_up_to bisim_t (N2 W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H18 to H23 H24.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
H24 : bisim_up_to bisim_t (N2 W) (N W)
H25 : bisim_up_to bisim_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < backchain CH.
Subgoal 3:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 3:
Variables: P, Q, X, M
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H6 to H10.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists M.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists N.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H1.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H14 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H14.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H12.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
H23 : bisim_up_to bisim_t (N2 n1) (N n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
H23 : bisim_up_to bisim_t (N2 n1) (N n1)
H24 : bisim_up_to bisim_t (M n1) (N n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < backchain CH.
Subgoal 4:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 4:
Variables: P, Q, A, Q1
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H7 to H10.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
bisim_up_to refl_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists P2.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists Q1.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
refl_t P2 P2 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H1.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
H14 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H14.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : bisim_t P2 P3 Q1 Q3
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H12.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P2 P3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P2 P3
H21 : bisim_up_to bisim_t Q1 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P2 P3
H21 : bisim_up_to bisim_t Q1 Q3
H22 : bisim_up_to bisim_t P2 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P2 P3
H21 : bisim_up_to bisim_t Q1 Q3
H22 : bisim_up_to bisim_t P2 Q3
H23 : bisim_up_to bisim_t Q3 Q1
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to bisim_t P3 Q3
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t P2 P3
H19 : bisim_up_to refl_t Q1 Q3
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t P2 P3
H21 : bisim_up_to bisim_t Q1 Q3
H22 : bisim_up_to bisim_t P2 Q3
H23 : bisim_up_to bisim_t Q3 Q1
H24 : bisim_up_to bisim_t P2 Q1
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < backchain CH.
Subgoal 5:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 5:
Variables: P, Q, X, N
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H8 to H10.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists M.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < exists N.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < search.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H12 with W = W.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H1.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H15 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H15.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case H13.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply implies to upToImplies H20.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H18 to H21 H14.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H17 to H22.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
H24 : bisim_up_to bisim_t (N2 W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < apply H18 to H23 H24.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H14 : bisim_up_to bisim_t (M2 W) (N2 W)
H16 : forall P, bisim_up_to bisim_t P P
H17 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H18 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H19 : bisim_up_to refl_t (M W) (M2 W)
H20 : bisim_up_to refl_t (N W) (N2 W)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H21 : bisim_up_to bisim_t (M W) (M2 W)
H22 : bisim_up_to bisim_t (N W) (N2 W)
H23 : bisim_up_to bisim_t (M W) (N2 W)
H24 : bisim_up_to bisim_t (N2 W) (N W)
H25 : bisim_up_to bisim_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < backchain CH.
Subgoal 6:
Variables: P, Q
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimB_soundIff_soundness < intros.
Subgoal 6:
Variables: P, Q, X, N
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimB_soundIff_soundness < apply H9 to H10.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimB_soundIff_soundness < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimB_soundIff_soundness < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimB_soundIff_soundness < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimB_soundIff_soundness < exists M.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
bisimB_soundIff_soundness < exists N.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
bisimB_soundIff_soundness < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < search.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimB_is_equiv
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < case H1.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H14 : equiv_rel (bisim_up_to bisim_t)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < case H14.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < case H12.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply upToBisim_implie_upToBisimB.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply bisim_implies_bisimB.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
loadLemma : bisim1ImpliesBisim2 refl_t bisim_t
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < case implies : loadLemma.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply implies to upToImplies H18.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply implies to upToImplies H19.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply H17 to H20 H13.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply H16 to H21.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
H23 : bisim_up_to bisim_t (N2 n1) (N n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < apply H17 to H22 H23.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_equiv
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H15 : forall P, bisim_up_to bisim_t P P
H16 : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
H17 : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
H18 : bisim_up_to refl_t (M n1) (M2 n1)
H19 : bisim_up_to refl_t (N n1) (N2 n1)
upToImplies : upTo1ImpliesUpTo2 refl_t bisim_t
implies : forall P Q, upTo1ImpliesUpTo2 refl_t bisim_t ->
bisim_up_to refl_t P Q -> bisim_up_to bisim_t P Q
H20 : bisim_up_to bisim_t (M n1) (M2 n1)
H21 : bisim_up_to bisim_t (N n1) (N2 n1)
H22 : bisim_up_to bisim_t (M n1) (N2 n1)
H23 : bisim_up_to bisim_t (N2 n1) (N n1)
H24 : bisim_up_to bisim_t (M n1) (N n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimB_soundIff_soundness < backchain CH.
Proof completed.
Abella < Theorem bisimT_soundIff_soundness :
bisimT_is_equiv -> bisim_is_equiv -> is_sound transitivity_t.
============================
bisimT_is_equiv -> bisim_is_equiv -> is_sound transitivity_t
bisimT_soundIff_soundness < skip.
Proof completed.
Abella < Theorem bisimK_and_subst_soundness :
bisimK_is_subst -> bisim_is_cong -> is_sound context_t.
============================
bisimK_is_subst -> bisim_is_cong -> is_sound context_t
bisimK_and_subst_soundness < intros.
H1 : bisimK_is_subst
H2 : bisim_is_cong
============================
is_sound context_t
bisimK_and_subst_soundness < unfold.
H1 : bisimK_is_subst
H2 : bisim_is_cong
============================
forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q
bisimK_and_subst_soundness < coinduction.
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
============================
forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q #
bisimK_and_subst_soundness < intros.
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H3 : bisim_up_to context_t P Q
============================
bisim_up_to refl_t P Q #
bisimK_and_subst_soundness < case H3.
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
bisim_up_to refl_t P Q #
bisimK_and_subst_soundness < unfold.
Subgoal 1:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 1:
Variables: P, Q, A, P1
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H4 to H10.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists Q2.
Subgoal 1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q1, refl_t P1 P2 Q2 Q1 /\
bisim_up_to refl_t P2 Q1 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 1.1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
one Q A Q2
Subgoal 1.2 is:
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists P2 Q1, refl_t P1 P2 Q2 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists P1.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists Q1, refl_t P1 P1 Q2 Q1 /\ bisim_up_to refl_t P1 Q1 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists Q2.
Subgoal 1.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
refl_t P1 P1 Q2 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 1.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
refl_t P1 P1 Q2 Q2
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H1.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
H14 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H14.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H12 : context_t P1 P3 Q2 Q3
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H12.
Subgoal 1.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P1
H11 : one Q A Q2
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H16 : P1 = P3 /\ Q2 = Q3 \/ (exists R, P1 = par P3 R /\ Q2 = par Q3 R)
============================
bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H16.
Subgoal 1.2.2.1:
Variables: P, Q, A, P1, Q2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A P3
H11 : one Q A Q3
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t P3 Q3 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 1.2.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A (par P3 R)
H11 : one Q A (par Q3 R)
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H15 to H13 with R = R.
Subgoal 1.2.2.2:
Variables: P, Q, A, P1, Q2, P3, Q3, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one P A (par P3 R)
H11 : one Q A (par Q3 R)
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : bisim_up_to context_t (par P3 R) (par Q3 R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 2:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 2:
Variables: P, Q, X, M
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H5 to H10.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists N.
Subgoal 2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 2.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb Q (dn X) N
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists M.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists N.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H12 with W = W.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H1.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H15 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H15.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H13.
Subgoal 2.2.2:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
N W = par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H17.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H20 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H20.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H21 to H14 H18 H19.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, N, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H22 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H16 to H14 with R = R.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H21 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H21.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H22 to H20 H18 H19.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, N, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (dn X) M
H11 : oneb Q (dn X) N
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H23 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 3:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 3:
Variables: P, Q, X, M
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H6 to H10.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists N.
Subgoal 3:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 3.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists M.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists N.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 3.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 3.2.1:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H1.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H14 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H14.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H12.
Subgoal 3.2.2:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) M
H11 : oneb Q (up X) N
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H16 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
N n1 = par (N2 n1) R)
============================
bisim_up_to refl_t (M n1) (N n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H16.
Subgoal 3.2.2.1:
Variables: P, Q, X, M, N, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) (z1\M2 z1)
H11 : oneb Q (up X) (z1\N2 z1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M2 n1) (N2 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 3.2.2.2:
Variables: P, Q, X, M, N, M2, N2, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) (z1\par (M2 z1) (R z1))
H11 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H15 to H13 with R = R n1.
Subgoal 3.2.2.2:
Variables: P, Q, X, M, N, M2, N2, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb P (up X) (z1\par (M2 z1) (R z1))
H11 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 4:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 4:
Variables: P, Q, A, Q1
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H7 to H10.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists P2.
Subgoal 4:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
one P A P2 /\ (exists P1 Q2, refl_t P2 P1 Q1 Q2 /\
bisim_up_to refl_t P1 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 4.1:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
one P A P2
Subgoal 4.2 is:
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists P1 Q2, refl_t P2 P1 Q1 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists P2.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
exists Q2, refl_t P2 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists Q1.
Subgoal 4.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
refl_t P2 P2 Q1 Q1 /\ bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 4.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
refl_t P2 P2 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H1.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
H14 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H14.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H12 : context_t P2 P3 Q1 Q3
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H12.
Subgoal 4.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q1
H11 : one P A P2
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H16 : P2 = P3 /\ Q1 = Q3 \/ (exists R, P2 = par P3 R /\ Q1 = par Q3 R)
============================
bisim_up_to refl_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H16.
Subgoal 4.2.2.1:
Variables: P, Q, A, Q1, P2, P3, Q3
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A Q3
H11 : one P A P3
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t P3 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 4.2.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A (par Q3 R)
H11 : one P A (par P3 R)
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H15 to H13 with R = R.
Subgoal 4.2.2.2:
Variables: P, Q, A, Q1, P2, P3, Q3, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : one Q A (par Q3 R)
H11 : one P A (par P3 R)
H13 : bisim_up_to context_t P3 Q3
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : bisim_up_to context_t (par P3 R) (par Q3 R)
============================
bisim_up_to refl_t (par P3 R) (par Q3 R) +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 5:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 5:
Variables: P, Q, X, N
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H8 to H10.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists M.
Subgoal 5:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 5.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
oneb P (dn X) M
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists M.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < exists N.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
forall W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 5.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W) /\ bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < split.
Subgoal 5.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
refl_t (M W) (M W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < search.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H12 with W = W.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H1.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H15 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H15.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H13 : context_t (M W) (M2 W) (N W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H13.
Subgoal 5.2.2:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : M W = M2 W /\ N W = N2 W \/ (exists R, M W = par (M2 W) R /\
N W = par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H17.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H20 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H20.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H21 to H14 H18 H19.
Subgoal 5.2.2.1:
Variables: P, Q, X, N, M, M2, N2, W
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = M2 W
H19 : N W = N2 W
H21 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H22 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H16 to H14 with R = R.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply equality_for_structured_cont.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H21 : equally_structured (bisim_up_to context_t)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < case H21.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < apply H22 to H20 H18 H19.
Subgoal 5.2.2.2:
Variables: P, Q, X, N, M, M2, N2, W, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : oneb P (dn X) M
H12 : forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)
H14 : bisim_up_to context_t (M2 W) (N2 W)
H16 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H18 : M W = par (M2 W) R
H19 : N W = par (N2 W) R
H20 : bisim_up_to context_t (par (M2 W) R) (par (N2 W) R)
H22 : forall X1 X2 Y1 Y2, bisim_up_to context_t X1 X2 -> Y1 = X1 ->
Y2 = X2 -> bisim_up_to context_t Y1 Y2
H23 : bisim_up_to context_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < backchain CH.
Subgoal 6:
Variables: P, Q
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimK_and_subst_soundness < intros.
Subgoal 6:
Variables: P, Q, X, N
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimK_and_subst_soundness < apply H9 to H10.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimK_and_subst_soundness < exists M.
Subgoal 6:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimK_and_subst_soundness < split.
Subgoal 6.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
oneb P (up X) M
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimK_and_subst_soundness < search.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimK_and_subst_soundness < exists M.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
bisimK_and_subst_soundness < exists N.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
nabla W, refl_t (M W) (M W) (N W) (N W) /\
bisim_up_to refl_t (M W) (N W) +
bisimK_and_subst_soundness < intros.
Subgoal 6.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1) /\ bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < split.
Subgoal 6.2.1:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
refl_t (M n1) (M n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < search.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H1 : bisimK_is_subst
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < case H1.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H14 : subst_rel (bisim_up_to context_t)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < case H14.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H12 : context_t (M n1) (M2 n1) (N n1) (N2 n1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < case H12.
Subgoal 6.2.2:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : oneb P (up X) M
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H16 : M n1 = M2 n1 /\ N n1 = N2 n1 \/ (exists R, M n1 = par (M2 n1) R /\
N n1 = par (N2 n1) R)
============================
bisim_up_to refl_t (M n1) (N n1) +
bisimK_and_subst_soundness < case H16.
Subgoal 6.2.2.1:
Variables: P, Q, X, N, M, M2, N2
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) (z1\N2 z1)
H11 : oneb P (up X) (z1\M2 z1)
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (M2 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
bisimK_and_subst_soundness < backchain CH.
Subgoal 6.2.2.2:
Variables: P, Q, X, N, M, M2, N2, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H11 : oneb P (up X) (z1\par (M2 z1) (R z1))
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
bisimK_and_subst_soundness < apply H15 to H13 with R = R n1.
Subgoal 6.2.2.2:
Variables: P, Q, X, N, M, M2, N2, R
H2 : bisim_is_cong
CH : forall P Q, bisim_up_to context_t P Q -> bisim_up_to refl_t P Q +
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
context_t P2 P3 Q2 Q3 /\ bisim_up_to context_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to context_t (M2 W) (N2 W)))
H10 : oneb Q (up X) (z1\par (N2 z1) (R z1))
H11 : oneb P (up X) (z1\par (M2 z1) (R z1))
H13 : bisim_up_to context_t (M2 n1) (N2 n1)
H15 : forall P Q R, bisim_up_to context_t P Q ->
bisim_up_to context_t (par P R) (par Q R)
H17 : bisim_up_to context_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1))
============================
bisim_up_to refl_t (par (M2 n1) (R n1)) (par (N2 n1) (R n1)) +
bisimK_and_subst_soundness < backchain CH.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness_fst :
bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t.
============================
bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
bisimBK_and_subst_soundness_fst < intros.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
is_sound_fst bisim_context_t
bisimBK_and_subst_soundness_fst < unfold.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness_fst < coinduction.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
============================
forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < intros.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H1.
Variables: P, Q
H2 : bisim_is_cong
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
H4 : subst_rel (bisim_up_to bisim_context_t)
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H4.
Variables: P, Q
H2 : bisim_is_cong
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H2.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H6 : cong_rel (bisim_up_to refl_t)
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H6.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H7 : equiv_rel (bisim_up_to refl_t)
H8 : subst_rel (bisim_up_to refl_t)
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H7.
Variables: P, Q
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H3 : exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < case H3.
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q #
bisimBK_and_subst_soundness_fst < unfold.
Subgoal 1:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall A P1, one P A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : one P A P1
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 1:
Variables: P, Q, R, S, A, P1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H16 to H15.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H25 to H22.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H34 to H31.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
exists Q1, one Q A Q1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists Q5.
Subgoal 1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5 /\ (exists P2 Q2, refl_t P1 P2 Q5 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 1.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
one Q A Q5
Subgoal 1.2 is:
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
exists P2 Q2, refl_t P1 P2 Q5 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists P1.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
exists Q2, refl_t P1 P1 Q5 Q2 /\ bisim_up_to refl_t P1 Q2 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists Q5.
Subgoal 1.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5 /\ bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 1.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
refl_t P1 P1 Q5 Q5
Subgoal 1.2.2 is:
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P1
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q2
H23 : refl_t P1 P3 Q2 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q2 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P1 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H23.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A Q1
H32 : bisim_context_t Q3 P2 Q1 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q5
H41 : refl_t Q1 P4 Q5 Q6
H42 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q5 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H41.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H32 : bisim_context_t Q3 P2 P4 Q4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H32.
Subgoal 1.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H43 : bisim_t Q3 P2 P4 Q4 \/ (exists P1 Q2, bisim_t Q3 P1 P4 Q2 /\
(exists R, P1 = par P2 R /\ Q2 = par Q4 R))
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H43.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H44 : bisim_t Q3 P2 P4 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 P2
H46 : bisim_up_to refl_t P4 Q4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 P2
H46 : bisim_up_to refl_t P4 Q4
H47 : bisim_up_to refl_t P3 P2
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 P2
H46 : bisim_up_to refl_t P4 Q4
H47 : bisim_up_to refl_t P3 P2
H48 : bisim_up_to refl_t Q4 P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 1.2.2.1:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 P2
H46 : bisim_up_to refl_t P4 Q4
H47 : bisim_up_to refl_t P3 P2
H48 : bisim_up_to refl_t Q4 P4
H49 : bisim_up_to refl_t Q4 Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 1.2.2.2 is:
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H44 : bisim_t Q3 (par P2 R1) P4 (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 (par P2 R1)
H46 : bisim_up_to refl_t P4 (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 (par P2 R1)
H46 : bisim_up_to refl_t P4 (par Q4 R1)
H47 : bisim_up_to refl_t P3 (par P2 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 (par P2 R1)
H46 : bisim_up_to refl_t P4 (par Q4 R1)
H47 : bisim_up_to refl_t P3 (par P2 R1)
H48 : bisim_up_to refl_t (par Q4 R1) P4
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 (par P2 R1)
H46 : bisim_up_to refl_t P4 (par Q4 R1)
H47 : bisim_up_to refl_t P3 (par P2 R1)
H48 : bisim_up_to refl_t (par Q4 R1) P4
H49 : bisim_up_to refl_t (par Q4 R1) Q6
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1.
Subgoal 1.2.2.2:
Variables: P, Q, R, S, A, P1, Q2, P3, Q3, Q1, P2, Q4, Q5, P4, Q6, P5, Q7,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one P A P3
H16 : forall A P1, one P A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
refl_t P1 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one R A Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P1, one R A P1 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P1, one R A P1 /\ (exists P3 Q3,
bisim_context_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one S A P4
H33 : bisim_up_to bisim_context_t P2 Q4
H34 : forall A P1, one S A P1 -> (exists Q1, one Q A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one Q A Q1 -> (exists P1, one S A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one Q A Q6
H42 : bisim_up_to refl_t P4 Q6
H45 : bisim_up_to refl_t Q3 (par P2 R1)
H46 : bisim_up_to refl_t P4 (par Q4 R1)
H47 : bisim_up_to refl_t P3 (par P2 R1)
H48 : bisim_up_to refl_t (par Q4 R1) P4
H49 : bisim_up_to refl_t (par Q4 R1) Q6
H50 : bisim_up_to bisim_context_t (par P2 R1) (par Q4 R1)
============================
bisim_up_to refl_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 2:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (dn X) M
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 2:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H17 to H15.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H25 to H22.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H33 to H30.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N, oneb Q (dn X) N /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4 /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
oneb Q (dn X) N4
Subgoal 2.2 is:
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists M2 N2, forall W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists M.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
exists N2, forall W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
forall W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W) /\ bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
refl_t (M W) (M W) (N4 W) (N4 W)
Subgoal 2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H23 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H31 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H39 with W = W.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H44 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H40.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H44 : refl_t (N1 W) (M3 W) (N4 W) (N5 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H50 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H50.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H51 to H41 H47 H46.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H51 to H45 H49 H48.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (N W) (M1 W) (N1 W) (N3 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H42.
Subgoal 2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H54 : bisim_t (N W) (M1 W) (N1 W) (N3 W) \/ (exists P2 Q2,
bisim_t (N W) P2 (N1 W) Q2 /\ (exists R, P2 = par (M1 W) R /\
Q2 = par (N3 W) R))
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H54.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H55 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H55.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (M1 W)
H57 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H52 H56.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (M1 W)
H57 : bisim_up_to refl_t (N1 W) (N3 W)
H58 : bisim_up_to refl_t (M W) (M1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (M1 W)
H57 : bisim_up_to refl_t (N1 W) (N3 W)
H58 : bisim_up_to refl_t (M W) (M1 W)
H59 : bisim_up_to refl_t (N3 W) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H59 H53.
Subgoal 2.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (M1 W)
H57 : bisim_up_to refl_t (N1 W) (N3 W)
H58 : bisim_up_to refl_t (M W) (M1 W)
H59 : bisim_up_to refl_t (N3 W) (N1 W)
H60 : bisim_up_to refl_t (N3 W) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 2.2.2.2 is:
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H55 : bisim_t (N W) (par (M1 W) R1) (N1 W) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H55.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H52 H56.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H59 H53.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
H60 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H5 to H43 with R = R1.
Subgoal 2.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (dn X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (dn X) N
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb S (dn X) N1
H31 : forall W, bisim_context_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_context_t (M1 W) (N3 W)
H32 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb Q (dn X) N4
H39 : forall W, refl_t (N1 W) (M3 W) (N4 W) (N5 W) /\
bisim_up_to refl_t (M3 W) (N5 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M3 W) (N5 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : N4 W = N5 W
H49 : N1 W = M3 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (N1 W) (N4 W)
H56 : bisim_up_to refl_t (N W) (par (M1 W) R1)
H57 : bisim_up_to refl_t (N1 W) (par (N3 W) R1)
H58 : bisim_up_to refl_t (M W) (par (M1 W) R1)
H59 : bisim_up_to refl_t (par (N3 W) R1) (N1 W)
H60 : bisim_up_to refl_t (par (N3 W) R1) (N4 W)
H61 : bisim_up_to bisim_context_t (par (M1 W) R1) (par (N3 W) R1)
============================
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 3:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (up X) M
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 3:
Variables: P, Q, R, S, X, M
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H18 to H15.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H27 to H22.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H14 : bisim_up_to refl_t S Q
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H36 to H31.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N, oneb Q (up X) N /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 3:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4 /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N4 W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 3.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
oneb Q (up X) N4
Subgoal 3.2 is:
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists M2 N2, nabla W, refl_t (M W) (M2 W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists M.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
exists N2, nabla W, refl_t (M W) (M W) (N4 W) (N2 W) /\
bisim_up_to refl_t (M W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists N4.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
nabla W, refl_t (M W) (M W) (N4 W) (N4 W) /\
bisim_up_to refl_t (M W) (N4 W) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 3.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1) /\
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 3.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
refl_t (M n1) (M n1) (N4 n1) (N4 n1)
Subgoal 3.2.2 is:
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) M
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) N
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H23.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) N1
H32 : bisim_context_t (N2 n1) (M1 n1) (N1 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) N4
H41 : refl_t (N1 n1) (M3 n1) (N4 n1) (N5 n1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N4 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H41.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H32 : bisim_context_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H32.
Subgoal 3.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H43 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1) \/ (exists P2 Q2,
bisim_t (N2 n1) P2 (M3 n1) Q2 /\ (exists R, P2 = par (M1 n1) R /\
Q2 = par (N3 n1) R))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H43.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H44 : bisim_t (N2 n1) (M1 n1) (M3 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
H48 : bisim_up_to refl_t (N3 n1) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 3.2.2.1:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (M1 n1)
H46 : bisim_up_to refl_t (M3 n1) (N3 n1)
H47 : bisim_up_to refl_t (M2 n1) (M1 n1)
H48 : bisim_up_to refl_t (N3 n1) (M3 n1)
H49 : bisim_up_to refl_t (N3 n1) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 3.2.2.2 is:
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H44 : bisim_t (N2 n1) (par (M1 n1) (R1 n1)) (M3 n1) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H24 H45.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H42.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
H49 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1 n1.
Subgoal 3.2.2.2:
Variables: P, Q, R, S, X, M, N, M2, N2, N1, M1, N3, N4, M3, N5, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb P (up X) (z1\M2 z1)
H16 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb R (up X) (z1\N2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb S (up X) (z1\M3 z1)
H33 : bisim_up_to bisim_context_t (M1 n1) (N3 n1)
H34 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb Q (up X) (z1\N5 z1)
H42 : bisim_up_to refl_t (M3 n1) (N5 n1)
H45 : bisim_up_to refl_t (N2 n1) (par (M1 n1) (R1 n1))
H46 : bisim_up_to refl_t (M3 n1) (par (N3 n1) (R1 n1))
H47 : bisim_up_to refl_t (M2 n1) (par (M1 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (M3 n1)
H49 : bisim_up_to refl_t (par (N3 n1) (R1 n1)) (N5 n1)
H50 : bisim_up_to bisim_context_t (par (M1 n1) (R1 n1)) (par (N3 n1) (R1 n1))
============================
bisim_up_to refl_t (M2 n1) (N5 n1) +
Subgoal 4 is:
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 4:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall A Q1, one Q A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : one Q A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 4:
Variables: P, Q, R, S, A, Q1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H19 to H15.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H28 to H22.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H37 to H31.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
exists P1, one P A P1 /\ (exists P2 Q2, refl_t P1 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists P5.
Subgoal 4:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
one P A P5 /\ (exists P2 Q2, refl_t P5 P2 Q1 Q2 /\
bisim_up_to refl_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 4.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
one P A P5
Subgoal 4.2 is:
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
exists P2 Q2, refl_t P5 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists P5.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
exists Q2, refl_t P5 P5 Q1 Q2 /\ bisim_up_to refl_t P5 Q2 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists Q1.
Subgoal 4.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1 /\ bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 4.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
refl_t P5 P5 Q1 Q1
Subgoal 4.2.2 is:
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q1
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P2
H23 : refl_t P2 P3 Q1 Q3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P2 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q1 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H23.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A P1
H32 : bisim_context_t P1 P4 P3 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P5
H41 : refl_t P5 P6 P1 Q4
H42 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P5 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H41.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H32 : bisim_context_t Q4 P4 P3 Q2
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H32.
Subgoal 4.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H43 : bisim_t Q4 P4 P3 Q2 \/ (exists P2 Q1, bisim_t Q4 P2 P3 Q1 /\
(exists R, P2 = par P4 R /\ Q1 = par Q2 R))
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H43.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H44 : bisim_t Q4 P4 P3 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 P4
H46 : bisim_up_to refl_t P3 Q2
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 P4
H46 : bisim_up_to refl_t P3 Q2
H47 : bisim_up_to refl_t P6 P4
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 P4
H46 : bisim_up_to refl_t P3 Q2
H47 : bisim_up_to refl_t P6 P4
H48 : bisim_up_to refl_t Q2 P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 4.2.2.1:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 P4
H46 : bisim_up_to refl_t P3 Q2
H47 : bisim_up_to refl_t P6 P4
H48 : bisim_up_to refl_t Q2 P3
H49 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 4.2.2.2 is:
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H44 : bisim_t Q4 (par P4 R1) P3 (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 (par P4 R1)
H46 : bisim_up_to refl_t P3 (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 (par P4 R1)
H46 : bisim_up_to refl_t P3 (par Q2 R1)
H47 : bisim_up_to refl_t P6 (par P4 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 (par P4 R1)
H46 : bisim_up_to refl_t P3 (par Q2 R1)
H47 : bisim_up_to refl_t P6 (par P4 R1)
H48 : bisim_up_to refl_t (par Q2 R1) P3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 (par P4 R1)
H46 : bisim_up_to refl_t P3 (par Q2 R1)
H47 : bisim_up_to refl_t P6 (par P4 R1)
H48 : bisim_up_to refl_t (par Q2 R1) P3
H49 : bisim_up_to refl_t (par Q2 R1) Q3
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1.
Subgoal 4.2.2.2:
Variables: P, Q, R, S, A, Q1, P2, P3, Q3, P1, P4, Q2, P5, P6, Q4, P7, Q5,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : one Q A Q3
H16 : forall A P2, one S A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q1, one Q A Q1 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q1 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : one S A P3
H24 : bisim_up_to refl_t P3 Q3
H25 : forall A P2, one R A P2 -> (exists Q1, one S A Q1 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q1, one S A Q1 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : one R A Q4
H33 : bisim_up_to bisim_context_t P4 Q2
H34 : forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
refl_t P1 P2 Q1 Q2 /\ bisim_up_to refl_t P2 Q2))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : one P A P6
H42 : bisim_up_to refl_t P6 Q4
H45 : bisim_up_to refl_t Q4 (par P4 R1)
H46 : bisim_up_to refl_t P3 (par Q2 R1)
H47 : bisim_up_to refl_t P6 (par P4 R1)
H48 : bisim_up_to refl_t (par Q2 R1) P3
H49 : bisim_up_to refl_t (par Q2 R1) Q3
H50 : bisim_up_to bisim_context_t (par P4 R1) (par Q2 R1)
============================
bisim_up_to refl_t P6 Q3 +
Subgoal 5 is:
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 5:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb Q (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 5:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H20 to H15.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H28 to H22.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H36 to H30.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 5:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4 /\ (exists M2 N2, forall W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 5.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
oneb P (dn X) M4
Subgoal 5.2 is:
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists M2 N2, forall W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
exists N2, forall W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < exists N.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
forall W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 5.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W) /\ bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < split.
Subgoal 5.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
refl_t (M4 W) (M4 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < search.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H23 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H31 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H39 with W = W.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H40 : refl_t (M W) (M2 W) (N W) (N2 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H44 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H40.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H44 : refl_t (M4 W) (M5 W) (M1 W) (N3 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H50 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H50.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H51 to H41 H47 H46.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H51 to H45 H49 H48.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H42 : bisim_context_t (M1 W) (M3 W) (M W) (N1 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H42.
Subgoal 5.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H54 : bisim_t (M1 W) (M3 W) (M W) (N1 W) \/ (exists P2 Q2,
bisim_t (M1 W) P2 (M W) Q2 /\ (exists R, P2 = par (M3 W) R /\
Q2 = par (N1 W) R))
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H54.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H55 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H55.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (M3 W)
H57 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H53 H56.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (M3 W)
H57 : bisim_up_to refl_t (M W) (N1 W)
H58 : bisim_up_to refl_t (M4 W) (M3 W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (M3 W)
H57 : bisim_up_to refl_t (M W) (N1 W)
H58 : bisim_up_to refl_t (M4 W) (M3 W)
H59 : bisim_up_to refl_t (N1 W) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H59 H52.
Subgoal 5.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (M3 W)
H57 : bisim_up_to refl_t (M W) (N1 W)
H58 : bisim_up_to refl_t (M4 W) (M3 W)
H59 : bisim_up_to refl_t (N1 W) (M W)
H60 : bisim_up_to refl_t (N1 W) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 5.2.2.2 is:
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H55 : bisim_t (M1 W) (par (M3 W) R1) (M W) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < case H55.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H53 H56.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H10 to H57.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H11 to H59 H52.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
H60 : bisim_up_to refl_t (par (N1 W) R1) (N W)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < apply H5 to H43 with R = R1.
Subgoal 5.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, W, P2, Q2,
R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (dn X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (dn X) M
H23 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H24 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H25 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H26 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H28 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H29 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : oneb R (dn X) M1
H31 : forall W, bisim_context_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_context_t (M3 W) (N1 W)
H32 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H33 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H34 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H35 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H36 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H38 : oneb P (dn X) M4
H39 : forall W, refl_t (M4 W) (M5 W) (M1 W) (N3 W) /\
bisim_up_to refl_t (M5 W) (N3 W)
H41 : bisim_up_to refl_t (M2 W) (N2 W)
H43 : bisim_up_to bisim_context_t (M3 W) (N1 W)
H45 : bisim_up_to refl_t (M5 W) (N3 W)
H46 : N W = N2 W
H47 : M W = M2 W
H48 : M1 W = N3 W
H49 : M4 W = M5 W
H51 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H52 : bisim_up_to refl_t (M W) (N W)
H53 : bisim_up_to refl_t (M4 W) (M1 W)
H56 : bisim_up_to refl_t (M1 W) (par (M3 W) R1)
H57 : bisim_up_to refl_t (M W) (par (N1 W) R1)
H58 : bisim_up_to refl_t (M4 W) (par (M3 W) R1)
H59 : bisim_up_to refl_t (par (N1 W) R1) (M W)
H60 : bisim_up_to refl_t (par (N1 W) R1) (N W)
H61 : bisim_up_to bisim_context_t (par (M3 W) R1) (par (N1 W) R1)
============================
bisim_up_to refl_t (M4 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 6:
Variables: P, Q, R, S
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
============================
forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +))
bisimBK_and_subst_soundness_fst < intros.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H14 : bisim_up_to refl_t S Q
H15 : oneb Q (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < case H14.
Subgoal 6:
Variables: P, Q, R, S, X, N
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < apply H21 to H15.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H13 : bisim_up_to bisim_context_t R S
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < case H13.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < apply H30 to H22.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H12 : bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < case H12.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < apply H39 to H31.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
refl_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 6:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4 /\ (exists M2 N2, nabla W,
refl_t (M4 W) (M2 W) (N W) (N2 W) /\ bisim_up_to refl_t (M2 W) (N2 W) +)
bisimBK_and_subst_soundness_fst < split.
Subgoal 6.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
oneb P (up X) M4
Subgoal 6.2 is:
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimBK_and_subst_soundness_fst < search.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists M2 N2, nabla W, refl_t (M4 W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W) +
bisimBK_and_subst_soundness_fst < exists M4.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
exists N2, nabla W, refl_t (M4 W) (M4 W) (N W) (N2 W) /\
bisim_up_to refl_t (M4 W) (N2 W) +
bisimBK_and_subst_soundness_fst < exists N.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
nabla W, refl_t (M4 W) (M4 W) (N W) (N W) /\
bisim_up_to refl_t (M4 W) (N W) +
bisimBK_and_subst_soundness_fst < intros.
Subgoal 6.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1) /\
bisim_up_to refl_t (M4 n1) (N n1) +
bisimBK_and_subst_soundness_fst < split.
Subgoal 6.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
refl_t (M4 n1) (M4 n1) (N n1) (N n1)
Subgoal 6.2.2 is:
bisim_up_to refl_t (M4 n1) (N n1) +
bisimBK_and_subst_soundness_fst < search.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) N
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) M
H23 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N n1) +
bisimBK_and_subst_soundness_fst < case H23.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) M1
H32 : bisim_context_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) M4
H41 : refl_t (M4 n1) (M5 n1) (M1 n1) (N3 n1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M4 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < case H41.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H32 : bisim_context_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < case H32.
Subgoal 6.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H43 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1) \/ (exists P2 Q2,
bisim_t (N3 n1) P2 (M2 n1) Q2 /\ (exists R, P2 = par (M3 n1) R /\
Q2 = par (N1 n1) R))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < case H43.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H44 : bisim_t (N3 n1) (M3 n1) (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
H48 : bisim_up_to refl_t (N1 n1) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 6.2.2.1:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (M3 n1)
H46 : bisim_up_to refl_t (M2 n1) (N1 n1)
H47 : bisim_up_to refl_t (M5 n1) (M3 n1)
H48 : bisim_up_to refl_t (N1 n1) (M2 n1)
H49 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
Subgoal 6.2.2.2 is:
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < backchain CH.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H44 : bisim_t (N3 n1) (par (M3 n1) (R1 n1)) (M2 n1) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < case H44.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H11 to H42 H45.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H10 to H46.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H11 to H48 H24.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
H49 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < apply H5 to H33 with R = R1 n1.
Subgoal 6.2.2.2:
Variables: P, Q, R, S, X, N, M, M2, N2, M1, M3, N1, M4, M5, N3, P2, Q2, R1
CH : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q +
H5 : forall P Q R, bisim_up_to bisim_context_t P Q ->
bisim_up_to bisim_context_t (par P R) (par Q R)
H8 : subst_rel (bisim_up_to refl_t)
H9 : forall P, bisim_up_to refl_t P P
H10 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H11 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H15 : oneb Q (up X) (z1\N2 z1)
H16 : forall A P2, one S A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H17 : forall X M, oneb S (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X M, oneb S (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : forall A Q2, one Q A Q2 -> (exists P2, one S A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H20 : forall X N, oneb Q (dn X) N -> (exists M, oneb S (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H21 : forall X N, oneb Q (up X) N -> (exists M, oneb S (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H22 : oneb S (up X) (z1\M2 z1)
H24 : bisim_up_to refl_t (M2 n1) (N2 n1)
H25 : forall A P2, one R A P2 -> (exists Q2, one S A Q2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H26 : forall X M, oneb R (dn X) M -> (exists N, oneb S (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H27 : forall X M, oneb R (up X) M -> (exists N, oneb S (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H28 : forall A Q2, one S A Q2 -> (exists P2, one R A P2 /\ (exists P3 Q3,
bisim_context_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_context_t P3 Q3))
H29 : forall X N, oneb S (dn X) N -> (exists M, oneb R (dn X) M /\
(exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H30 : forall X N, oneb S (up X) N -> (exists M, oneb R (up X) M /\
(exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W)))
H31 : oneb R (up X) (z1\N3 z1)
H33 : bisim_up_to bisim_context_t (M3 n1) (N1 n1)
H34 : forall A P2, one P A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H35 : forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H36 : forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H37 : forall A Q2, one R A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
refl_t P2 P3 Q2 Q3 /\ bisim_up_to refl_t P3 Q3))
H38 : forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H39 : forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H40 : oneb P (up X) (z1\M5 z1)
H42 : bisim_up_to refl_t (M5 n1) (N3 n1)
H45 : bisim_up_to refl_t (N3 n1) (par (M3 n1) (R1 n1))
H46 : bisim_up_to refl_t (M2 n1) (par (N1 n1) (R1 n1))
H47 : bisim_up_to refl_t (M5 n1) (par (M3 n1) (R1 n1))
H48 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (M2 n1)
H49 : bisim_up_to refl_t (par (N1 n1) (R1 n1)) (N2 n1)
H50 : bisim_up_to bisim_context_t (par (M3 n1) (R1 n1)) (par (N1 n1) (R1 n1))
============================
bisim_up_to refl_t (M5 n1) (N2 n1) +
bisimBK_and_subst_soundness_fst < backchain CH.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness_snd :
bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t.
============================
bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
bisimBK_and_subst_soundness_snd < intros.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
is_sound_snd bisim_context_t
bisimBK_and_subst_soundness_snd < unfold.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
bisimBK_and_subst_soundness_snd < intros.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < case H2.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H4 : cong_rel (bisim_up_to refl_t)
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < case H4.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H5 : equiv_rel (bisim_up_to refl_t)
H6 : subst_rel (bisim_up_to refl_t)
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < case H5.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H6 : subst_rel (bisim_up_to refl_t)
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < apply H7 with P = P.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H6 : subst_rel (bisim_up_to refl_t)
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t P P
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < apply H7 with P = Q.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H6 : subst_rel (bisim_up_to refl_t)
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t P P
H11 : bisim_up_to refl_t Q Q
============================
exists R S, bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < exists P.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H6 : subst_rel (bisim_up_to refl_t)
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t P P
H11 : bisim_up_to refl_t Q Q
============================
exists S, bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P S /\
bisim_up_to refl_t S Q
bisimBK_and_subst_soundness_snd < exists Q.
Variables: P, Q
H1 : bisimBK_is_subst
H3 : bisim_up_to bisim_context_t P Q
H6 : subst_rel (bisim_up_to refl_t)
H7 : forall P, bisim_up_to refl_t P P
H8 : forall P Q, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q P
H9 : forall P Q R, bisim_up_to refl_t P Q -> bisim_up_to refl_t Q R ->
bisim_up_to refl_t P R
H10 : bisim_up_to refl_t P P
H11 : bisim_up_to refl_t Q Q
============================
bisim_up_to refl_t P P /\ bisim_up_to bisim_context_t P Q /\
bisim_up_to refl_t Q Q
bisimBK_and_subst_soundness_snd < search.
Proof completed.
Abella < Theorem bisimBK_and_subst_soundness :
bisimBK_is_subst -> bisim_is_cong -> is_sound bisim_context_t.
============================
bisimBK_is_subst -> bisim_is_cong -> is_sound bisim_context_t
bisimBK_and_subst_soundness < intros.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
is_sound bisim_context_t
bisimBK_and_subst_soundness < unfold.
H1 : bisimBK_is_subst
H2 : bisim_is_cong
============================
forall P Q, bisim_up_to bisim_context_t P Q -> bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < intros.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < apply bisimBK_and_subst_soundness_snd.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < apply H4 to H1 H2.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H5 : is_sound_snd bisim_context_t
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < case H5.
Variables: P, Q
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < apply H6 to H3.
Variables: P, Q, R, S
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H7 : bisim_up_to refl_t P R
H8 : bisim_up_to bisim_context_t R S
H9 : bisim_up_to refl_t S Q
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < apply bisimBK_and_subst_soundness_fst.
Variables: P, Q, R, S
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H7 : bisim_up_to refl_t P R
H8 : bisim_up_to bisim_context_t R S
H9 : bisim_up_to refl_t S Q
H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < apply H10 to H1 H2.
Variables: P, Q, R, S
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H7 : bisim_up_to refl_t P R
H8 : bisim_up_to bisim_context_t R S
H9 : bisim_up_to refl_t S Q
H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
H11 : is_sound_fst bisim_context_t
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < case H11.
Variables: P, Q, R, S
H1 : bisimBK_is_subst
H2 : bisim_is_cong
H3 : bisim_up_to bisim_context_t P Q
H4 : bisimBK_is_subst -> bisim_is_cong -> is_sound_snd bisim_context_t
H6 : forall P Q, bisim_up_to bisim_context_t P Q -> (exists R S,
bisim_up_to refl_t P R /\ bisim_up_to bisim_context_t R S /\
bisim_up_to refl_t S Q)
H7 : bisim_up_to refl_t P R
H8 : bisim_up_to bisim_context_t R S
H9 : bisim_up_to refl_t S Q
H10 : bisimBK_is_subst -> bisim_is_cong -> is_sound_fst bisim_context_t
H12 : forall P Q, (exists R S, bisim_up_to refl_t P R /\
bisim_up_to bisim_context_t R S /\ bisim_up_to refl_t S Q) ->
bisim_up_to refl_t P Q
============================
bisim_up_to refl_t P Q
bisimBK_and_subst_soundness < backchain H12.
Proof completed.
Abella < Theorem subst_in_bisimB :
forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
bisim_up_to bisim_t P Q2.
============================
forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
bisim_up_to bisim_t P Q2
subst_in_bisimB < coinduction.
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
============================
forall P Q1 Q2, bisim_up_to bisim_t P Q1 -> bisim_up_to refl_t Q1 Q2 ->
bisim_up_to bisim_t P Q2 #
subst_in_bisimB < intros.
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
bisim_up_to bisim_t P Q2 #
subst_in_bisimB < unfold.
Subgoal 1:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall A P1, one P A P1 -> (exists Q1, one Q2 A Q1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 1:
Variables: P, Q1, Q2, A, P1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : one P A P1
============================
exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H1.
Subgoal 1:
Variables: P, Q1, Q2, A, P1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H4 to H3.
Subgoal 1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
============================
exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H2.
Subgoal 1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H13 to H10.
Subgoal 1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q5
H20 : refl_t Q3 P2 Q5 Q6
H21 : bisim_up_to refl_t P2 Q6
============================
exists Q1, one Q2 A Q1 /\ (exists P2 Q3, bisim_t P1 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists Q5.
Subgoal 1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q5
H20 : refl_t Q3 P2 Q5 Q6
H21 : bisim_up_to refl_t P2 Q6
============================
one Q2 A Q5 /\ (exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 1.1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q5
H20 : refl_t Q3 P2 Q5 Q6
H21 : bisim_up_to refl_t P2 Q6
============================
one Q2 A Q5
Subgoal 1.2 is:
exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\ bisim_up_to bisim_t P2 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A Q3
H11 : bisim_t P1 P3 Q3 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q5
H20 : refl_t Q3 P2 Q5 Q6
H21 : bisim_up_to refl_t P2 Q6
============================
exists P2 Q3, bisim_t P1 P2 Q5 Q3 /\ bisim_up_to bisim_t P2 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H20.
Subgoal 1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : bisim_t P1 P3 P2 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
============================
exists P2 Q3, bisim_t P1 P2 Q6 Q3 /\ bisim_up_to bisim_t P2 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists P3.
Subgoal 1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : bisim_t P1 P3 P2 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
============================
exists Q3, bisim_t P1 P3 Q6 Q3 /\ bisim_up_to bisim_t P3 Q3 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists Q6.
Subgoal 1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : bisim_t P1 P3 P2 Q4
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
============================
bisim_t P1 P3 Q6 Q6 /\ bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H11.
Subgoal 1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
============================
bisim_t P1 P3 Q6 Q6 /\ bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 1.2.1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
============================
bisim_t P1 P3 Q6 Q6
Subgoal 1.2.2 is:
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < unfold.
Subgoal 1.2.1.1:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
============================
bisim_up_to refl_t P1 P3
Subgoal 1.2.1.2 is:
bisim_up_to refl_t Q6 Q6
Subgoal 1.2.2 is:
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 1.2.1.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
============================
bisim_up_to refl_t Q6 Q6
Subgoal 1.2.2 is:
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain bisim_refl.
Subgoal 1.2.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
============================
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_sym to H23.
Subgoal 1.2.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
H24 : bisim_up_to refl_t Q4 P2
============================
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_trans to H24 H21.
Subgoal 1.2.2:
Variables: P, Q1, Q2, A, P1, Q3, P3, Q4, Q5, P2, Q6
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H12 : bisim_up_to bisim_t P3 Q4
H13 : forall A P1, one Q1 A P1 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P1, one Q1 A P1 /\ (exists P3 Q4,
refl_t P1 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : one Q2 A Q6
H21 : bisim_up_to refl_t P2 Q6
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t P2 Q4
H24 : bisim_up_to refl_t Q4 P2
H25 : bisim_up_to refl_t Q4 Q6
============================
bisim_up_to bisim_t P3 Q6 +
Subgoal 2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain CH.
Subgoal 2:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall X M, oneb P (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 2:
Variables: P, Q1, Q2, X, M
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (dn X) M
============================
exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H1.
Subgoal 2:
Variables: P, Q1, Q2, X, M
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H5 to H3.
Subgoal 2:
Variables: P, Q1, Q2, X, M, N, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H2.
Subgoal 2:
Variables: P, Q1, Q2, X, M, N, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H13 to H10.
Subgoal 2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists N, oneb Q2 (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists N1.
Subgoal 2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
oneb Q2 (dn X) N1 /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 2.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
oneb Q2 (dn X) N1
Subgoal 2.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists M2.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
exists N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists N1.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
forall W, bisim_t (M W) (M2 W) (N1 W) (N1 W) /\
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H11 with W = W.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H19 with W = W.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H22 : refl_t (N W) (M1 W) (N1 W) (N3 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H22.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H20.
Subgoal 2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W) /\ bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 2.2.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N1 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < unfold.
Subgoal 2.2.1.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_up_to refl_t (M W) (M2 W)
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (N1 W) (N1 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 2.2.1.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_up_to refl_t (N1 W) (N1 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain bisim_refl.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply equality_for_structured_refl.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
H28 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H28.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H29 to H23 H25 H24.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (N W) (N1 W)
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_sym to H27.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (N W) (N1 W)
H31 : bisim_up_to refl_t (N2 W) (N W)
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_trans to H31 H30.
Subgoal 2.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H13 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H16 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : oneb Q2 (dn X) N1
H19 : forall W, refl_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to refl_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to refl_t (M1 W) (N3 W)
H24 : N1 W = N3 W
H25 : N W = M1 W
H26 : bisim_up_to refl_t (M W) (M2 W)
H27 : bisim_up_to refl_t (N W) (N2 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (N W) (N1 W)
H31 : bisim_up_to refl_t (N2 W) (N W)
H32 : bisim_up_to refl_t (N2 W) (N1 W)
============================
bisim_up_to bisim_t (M2 W) (N1 W) +
Subgoal 3 is:
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain CH.
Subgoal 3:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall X M, oneb P (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 3:
Variables: P, Q1, Q2, X, M
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (up X) M
============================
exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H1.
Subgoal 3:
Variables: P, Q1, Q2, X, M
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H6 to H3.
Subgoal 3:
Variables: P, Q1, Q2, X, M, N, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H2.
Subgoal 3:
Variables: P, Q1, Q2, X, M, N, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H15 to H10.
Subgoal 3:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists N, oneb Q2 (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists N1.
Subgoal 3:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
oneb Q2 (up X) N1 /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 3.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
oneb Q2 (up X) N1
Subgoal 3.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) N1
H20 : refl_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H20.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H11 : bisim_t (M n1) (M2 n1) (M1 n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H11.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists M2.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
exists N2, nabla W, bisim_t (M W) (M2 W) (N3 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists N3.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
nabla W, bisim_t (M W) (M2 W) (N3 W) (N3 W) /\
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 3.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N3 n1) (N3 n1) /\
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 3.2.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N3 n1) (N3 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < unfold.
Subgoal 3.2.1.1:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (M2 n1)
Subgoal 3.2.1.2 is:
bisim_up_to refl_t (N3 n1) (N3 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 3.2.1.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
bisim_up_to refl_t (N3 n1) (N3 n1)
Subgoal 3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain bisim_refl.
Subgoal 3.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_sym to H23.
Subgoal 3.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
H24 : bisim_up_to refl_t (N2 n1) (M1 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_trans to H24 H21.
Subgoal 3.2.2:
Variables: P, Q1, Q2, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M1 z1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H14 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H16 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H17 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H19 : oneb Q2 (up X) (z1\N3 z1)
H21 : bisim_up_to refl_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (M1 n1) (N2 n1)
H24 : bisim_up_to refl_t (N2 n1) (M1 n1)
H25 : bisim_up_to refl_t (N2 n1) (N3 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 4 is:
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain CH.
Subgoal 4:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall A Q1, one Q2 A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q3,
bisim_t P1 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +))
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : one Q2 A Q3
============================
exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H2.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H7 to H3.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
============================
exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H1.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H16 to H10.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
exists P1, one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists P1.
Subgoal 4:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
one P A P1 /\ (exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 4.1:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
one P A P1
Subgoal 4.2 is:
exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\ bisim_up_to bisim_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 4.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q3
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P2
H11 : refl_t P2 P3 Q3 Q4
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
exists P2 Q1, bisim_t P1 P2 Q3 Q1 /\ bisim_up_to bisim_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H11.
Subgoal 4.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P3 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
exists P2 Q1, bisim_t P1 P2 Q4 Q1 /\ bisim_up_to bisim_t P2 Q1 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists P4.
Subgoal 4.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P3 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
exists Q1, bisim_t P1 P4 Q4 Q1 /\ bisim_up_to bisim_t P4 Q1 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists Q4.
Subgoal 4.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P3 Q5
H21 : bisim_up_to bisim_t P4 Q5
============================
bisim_t P1 P4 Q4 Q4 /\ bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H20.
Subgoal 4.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
============================
bisim_t P1 P4 Q4 Q4 /\ bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 4.2.1:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
============================
bisim_t P1 P4 Q4 Q4
Subgoal 4.2.2 is:
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < unfold.
Subgoal 4.2.1.1:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
============================
bisim_up_to refl_t P1 P4
Subgoal 4.2.1.2 is:
bisim_up_to refl_t Q4 Q4
Subgoal 4.2.2 is:
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 4.2.1.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
============================
bisim_up_to refl_t Q4 Q4
Subgoal 4.2.2 is:
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain bisim_refl.
Subgoal 4.2.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
============================
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_sym to H23.
Subgoal 4.2.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
H24 : bisim_up_to refl_t Q5 P3
============================
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_trans to H24 H12.
Subgoal 4.2.2:
Variables: P, Q1, Q2, A, Q3, P2, P3, Q4, P1, P4, Q5
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : one Q2 A Q4
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : one Q1 A P3
H12 : bisim_up_to refl_t P3 Q4
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q5
H22 : bisim_up_to refl_t P1 P4
H23 : bisim_up_to refl_t P3 Q5
H24 : bisim_up_to refl_t Q5 P3
H25 : bisim_up_to refl_t Q5 Q4
============================
bisim_up_to bisim_t P4 Q4 +
Subgoal 5 is:
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain CH.
Subgoal 5:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall X N, oneb Q2 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 5:
Variables: P, Q1, Q2, X, N
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb Q2 (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H2.
Subgoal 5:
Variables: P, Q1, Q2, X, N
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H8 to H3.
Subgoal 5:
Variables: P, Q1, Q2, X, N, M, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H1.
Subgoal 5:
Variables: P, Q1, Q2, X, N, M, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H16 to H10.
Subgoal 5:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists M1.
Subgoal 5:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
oneb P (dn X) M1 /\ (exists M2 N2, forall W,
bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 5.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
oneb P (dn X) M1
Subgoal 5.2 is:
exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists M3.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists N2, forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < exists N.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
forall W, bisim_t (M1 W) (M3 W) (N W) (N W) /\
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H11 with W = W.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H19 with W = W.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H20 : refl_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H20.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
============================
bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H22.
Subgoal 5.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N W) /\ bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < split.
Subgoal 5.2.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < unfold.
Subgoal 5.2.1.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (M1 W) (M3 W)
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < search.
Subgoal 5.2.1.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (N W) (N W)
Subgoal 5.2.2 is:
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain bisim_refl.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply equality_for_structured_refl.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H28 : equally_structured (bisim_up_to refl_t)
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < case H28.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply H29 to H21 H25 H24.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_sym to H27.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
H31 : bisim_up_to refl_t (N1 W) (M W)
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < apply bisim_trans to H31 H30.
Subgoal 5.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (dn X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (dn X) M
H11 : forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to refl_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : N W = N2 W
H25 : M W = M2 W
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H29 : forall X1 X2 Y1 Y2, bisim_up_to refl_t X1 X2 -> Y1 = X1 -> Y2 = X2 ->
bisim_up_to refl_t Y1 Y2
H30 : bisim_up_to refl_t (M W) (N W)
H31 : bisim_up_to refl_t (N1 W) (M W)
H32 : bisim_up_to refl_t (N1 W) (N W)
============================
bisim_up_to bisim_t (M3 W) (N W) +
Subgoal 6 is:
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < backchain CH.
Subgoal 6:
Variables: P, Q1, Q2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
============================
forall X N, oneb Q2 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
subst_in_bisimB < intros.
Subgoal 6:
Variables: P, Q1, Q2, X, N
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H2 : bisim_up_to refl_t Q1 Q2
H3 : oneb Q2 (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < case H2.
Subgoal 6:
Variables: P, Q1, Q2, X, N
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < apply H9 to H3.
Subgoal 6:
Variables: P, Q1, Q2, X, N, M, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H1 : bisim_up_to bisim_t P Q1
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < case H1.
Subgoal 6:
Variables: P, Q1, Q2, X, N, M, M2, N2
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < apply H18 to H10.
Subgoal 6:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < exists M1.
Subgoal 6:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1 /\ (exists M2 N2, nabla W,
bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
subst_in_bisimB < split.
Subgoal 6.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1
Subgoal 6.2 is:
exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
subst_in_bisimB < search.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
subst_in_bisimB < exists M3.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists N2, nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
subst_in_bisimB < exists N.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
nabla W, bisim_t (M1 W) (M3 W) (N W) (N W) /\
bisim_up_to bisim_t (M3 W) (N W) +
subst_in_bisimB < intros.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) N
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) M
H11 : refl_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N n1) (N n1) /\
bisim_up_to bisim_t (M3 n1) (N n1) +
subst_in_bisimB < case H11.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M2 n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1) /\
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < case H20.
Subgoal 6.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1) /\
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < split.
Subgoal 6.2.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N2 n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < unfold.
Subgoal 6.2.1.1:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (M1 n1) (M3 n1)
Subgoal 6.2.1.2 is:
bisim_up_to refl_t (N2 n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < search.
Subgoal 6.2.1.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to refl_t (N2 n1) (N2 n1)
Subgoal 6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < backchain bisim_refl.
Subgoal 6.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < apply bisim_sym to H23.
Subgoal 6.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
H24 : bisim_up_to refl_t (N1 n1) (M2 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < apply bisim_trans to H24 H12.
Subgoal 6.2.2:
Variables: P, Q1, Q2, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q1 Q2, bisim_up_to bisim_t P Q1 ->
bisim_up_to refl_t Q1 Q2 -> bisim_up_to bisim_t P Q2 +
H3 : oneb Q2 (up X) (z1\N2 z1)
H4 : forall A P2, one Q1 A P2 -> (exists Q3, one Q2 A Q3 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H5 : forall X M, oneb Q1 (dn X) M -> (exists N, oneb Q2 (dn X) N /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q1 (up X) M -> (exists N, oneb Q2 (up X) N /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H7 : forall A Q3, one Q2 A Q3 -> (exists P2, one Q1 A P2 /\ (exists P3 Q4,
refl_t P2 P3 Q3 Q4 /\ bisim_up_to refl_t P3 Q4))
H8 : forall X N, oneb Q2 (dn X) N -> (exists M, oneb Q1 (dn X) M /\
(exists M2 N2, forall W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q2 (up X) N -> (exists M, oneb Q1 (up X) M /\
(exists M2 N2, nabla W, refl_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to refl_t (M2 W) (N2 W)))
H10 : oneb Q1 (up X) (z1\M2 z1)
H12 : bisim_up_to refl_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q1 A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q1 (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q1 (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q1 A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q1 (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q1 (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M1 n1) (M3 n1)
H23 : bisim_up_to refl_t (M2 n1) (N1 n1)
H24 : bisim_up_to refl_t (N1 n1) (M2 n1)
H25 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
subst_in_bisimB < backchain CH.
Proof completed.
Abella < Theorem bisimB_is_equiv_th :
equiv_rel (bisim_up_to bisim_t).
============================
equiv_rel (bisim_up_to bisim_t)
bisimB_is_equiv_th < unfold.
Subgoal 1:
============================
forall P, bisim_up_to bisim_t P P
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < coinduction.
Subgoal 1:
CH : forall P, bisim_up_to bisim_t P P +
============================
forall P, bisim_up_to bisim_t P P #
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
bisim_up_to bisim_t P P #
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.1:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall A P1, one P A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.1:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P1.
Subgoal 1.1:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 P1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.1.1:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
one P A P1
Subgoal 1.1.2 is:
exists P2 Q2, bisim_t P1 P2 P1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.1.2:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
exists P2 Q2, bisim_t P1 P2 P1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P1.
Subgoal 1.1.2:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
exists Q2, bisim_t P1 P1 P1 Q2 /\ bisim_up_to bisim_t P1 Q2 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P1.
Subgoal 1.1.2:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
bisim_t P1 P1 P1 P1 /\ bisim_up_to bisim_t P1 P1 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.1.2.1:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
bisim_t P1 P1 P1 P1
Subgoal 1.1.2.2 is:
bisim_up_to bisim_t P1 P1 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.1.2.1.1:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
bisim_up_to refl_t P1 P1
Subgoal 1.1.2.1.2 is:
bisim_up_to refl_t P1 P1
Subgoal 1.1.2.2 is:
bisim_up_to bisim_t P1 P1 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.1.2.1.2:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
bisim_up_to refl_t P1 P1
Subgoal 1.1.2.2 is:
bisim_up_to bisim_t P1 P1 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.1.2.2:
Variables: P, A, P1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A P1
============================
bisim_up_to bisim_t P1 P1 +
Subgoal 1.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 1.2:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall X M, oneb P (dn X) M -> (exists N, oneb P (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.2.1:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
oneb P (dn X) M
Subgoal 1.2.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.2.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.2.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
exists N2, forall W, bisim_t (M W) (M W) (M W) (N2 W) /\
bisim_up_to bisim_t (M W) (N2 W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.2.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
forall W, bisim_t (M W) (M W) (M W) (M W) /\
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.2.2:
Variables: P, X, M, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
bisim_t (M W) (M W) (M W) (M W) /\ bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.2.2.1:
Variables: P, X, M, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
bisim_t (M W) (M W) (M W) (M W)
Subgoal 1.2.2.2 is:
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.2.2.1.1:
Variables: P, X, M, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
bisim_up_to refl_t (M W) (M W)
Subgoal 1.2.2.1.2 is:
bisim_up_to refl_t (M W) (M W)
Subgoal 1.2.2.2 is:
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.2.2.1.2:
Variables: P, X, M, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
bisim_up_to refl_t (M W) (M W)
Subgoal 1.2.2.2 is:
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.2.2.2:
Variables: P, X, M, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) M
============================
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 1.3:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall X M, oneb P (up X) M -> (exists N, oneb P (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.3:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.3:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.3.1:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
oneb P (up X) M
Subgoal 1.3.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.3.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.3.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
exists N2, nabla W, bisim_t (M W) (M W) (M W) (N2 W) /\
bisim_up_to bisim_t (M W) (N2 W) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M.
Subgoal 1.3.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
nabla W, bisim_t (M W) (M W) (M W) (M W) /\
bisim_up_to bisim_t (M W) (M W) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.3.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
bisim_t (M n1) (M n1) (M n1) (M n1) /\ bisim_up_to bisim_t (M n1) (M n1) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.3.2.1:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
bisim_t (M n1) (M n1) (M n1) (M n1)
Subgoal 1.3.2.2 is:
bisim_up_to bisim_t (M n1) (M n1) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.3.2.1.1:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
bisim_up_to refl_t (M n1) (M n1)
Subgoal 1.3.2.1.2 is:
bisim_up_to refl_t (M n1) (M n1)
Subgoal 1.3.2.2 is:
bisim_up_to bisim_t (M n1) (M n1) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.3.2.1.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
bisim_up_to refl_t (M n1) (M n1)
Subgoal 1.3.2.2 is:
bisim_up_to bisim_t (M n1) (M n1) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.3.2.2:
Variables: P, X, M
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) M
============================
bisim_up_to bisim_t (M n1) (M n1) +
Subgoal 1.4 is:
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 1.4:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall A Q1, one P A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.4:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q1.
Subgoal 1.4:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
one P A Q1 /\ (exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.4.1:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
one P A Q1
Subgoal 1.4.2 is:
exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.4.2:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
exists P2 Q2, bisim_t Q1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q1.
Subgoal 1.4.2:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
exists Q2, bisim_t Q1 Q1 Q1 Q2 /\ bisim_up_to bisim_t Q1 Q2 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q1.
Subgoal 1.4.2:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
bisim_t Q1 Q1 Q1 Q1 /\ bisim_up_to bisim_t Q1 Q1 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.4.2.1:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
bisim_t Q1 Q1 Q1 Q1
Subgoal 1.4.2.2 is:
bisim_up_to bisim_t Q1 Q1 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.4.2.1.1:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
bisim_up_to refl_t Q1 Q1
Subgoal 1.4.2.1.2 is:
bisim_up_to refl_t Q1 Q1
Subgoal 1.4.2.2 is:
bisim_up_to bisim_t Q1 Q1 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.4.2.1.2:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
bisim_up_to refl_t Q1 Q1
Subgoal 1.4.2.2 is:
bisim_up_to bisim_t Q1 Q1 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.4.2.2:
Variables: P, A, Q1
CH : forall P, bisim_up_to bisim_t P P +
H1 : one P A Q1
============================
bisim_up_to bisim_t Q1 Q1 +
Subgoal 1.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 1.5:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall X N, oneb P (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.5:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.5:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
oneb P (dn X) N /\ (exists M2 N2, forall W,
bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.5.1:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
oneb P (dn X) N
Subgoal 1.5.2 is:
exists M2 N2, forall W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.5.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
exists M2 N2, forall W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.5.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
exists N2, forall W, bisim_t (N W) (N W) (N W) (N2 W) /\
bisim_up_to bisim_t (N W) (N2 W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.5.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
forall W, bisim_t (N W) (N W) (N W) (N W) /\
bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.5.2:
Variables: P, X, N, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
bisim_t (N W) (N W) (N W) (N W) /\ bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.5.2.1:
Variables: P, X, N, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
bisim_t (N W) (N W) (N W) (N W)
Subgoal 1.5.2.2 is:
bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.5.2.1.1:
Variables: P, X, N, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
bisim_up_to refl_t (N W) (N W)
Subgoal 1.5.2.1.2 is:
bisim_up_to refl_t (N W) (N W)
Subgoal 1.5.2.2 is:
bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.5.2.1.2:
Variables: P, X, N, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
bisim_up_to refl_t (N W) (N W)
Subgoal 1.5.2.2 is:
bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.5.2.2:
Variables: P, X, N, W
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (dn X) N
============================
bisim_up_to bisim_t (N W) (N W) +
Subgoal 1.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 1.6:
Variables: P
CH : forall P, bisim_up_to bisim_t P P +
============================
forall X N, oneb P (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.6:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.6:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
oneb P (up X) N /\ (exists M2 N2, nabla W,
bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.6.1:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
oneb P (up X) N
Subgoal 1.6.2 is:
exists M2 N2, nabla W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 1.6.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
exists M2 N2, nabla W, bisim_t (N W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.6.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
exists N2, nabla W, bisim_t (N W) (N W) (N W) (N2 W) /\
bisim_up_to bisim_t (N W) (N2 W) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N.
Subgoal 1.6.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
nabla W, bisim_t (N W) (N W) (N W) (N W) /\
bisim_up_to bisim_t (N W) (N W) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 1.6.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
bisim_t (N n1) (N n1) (N n1) (N n1) /\ bisim_up_to bisim_t (N n1) (N n1) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 1.6.2.1:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
bisim_t (N n1) (N n1) (N n1) (N n1)
Subgoal 1.6.2.2 is:
bisim_up_to bisim_t (N n1) (N n1) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 1.6.2.1.1:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
bisim_up_to refl_t (N n1) (N n1)
Subgoal 1.6.2.1.2 is:
bisim_up_to refl_t (N n1) (N n1)
Subgoal 1.6.2.2 is:
bisim_up_to bisim_t (N n1) (N n1) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.6.2.1.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
bisim_up_to refl_t (N n1) (N n1)
Subgoal 1.6.2.2 is:
bisim_up_to bisim_t (N n1) (N n1) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain bisim_refl.
Subgoal 1.6.2.2:
Variables: P, X, N
CH : forall P, bisim_up_to bisim_t P P +
H1 : oneb P (up X) N
============================
bisim_up_to bisim_t (N n1) (N n1) +
Subgoal 2 is:
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2:
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < coinduction.
Subgoal 2:
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
============================
forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P #
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
bisim_up_to bisim_t Q P #
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.1:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall A P1, one Q A P1 -> (exists Q1, one P A Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.1:
Variables: P, Q, A, P1
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : one Q A P1
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.1:
Variables: P, Q, A, P1
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H6 to H2.
Subgoal 2.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, one P A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P2.
Subgoal 2.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
one P A P2 /\ (exists P3 Q2, bisim_t P1 P3 P2 Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.1.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
one P A P2
Subgoal 2.1.2 is:
exists P3 Q2, bisim_t P1 P3 P2 Q2 /\ bisim_up_to bisim_t P3 Q2 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists P3 Q2, bisim_t P1 P3 P2 Q2 /\ bisim_up_to bisim_t P3 Q2 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q3.
Subgoal 2.1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists Q2, bisim_t P1 Q3 P2 Q2 /\ bisim_up_to bisim_t Q3 Q2 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P3.
Subgoal 2.1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_t P1 Q3 P2 P3 /\ bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.1.2.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_t P1 Q3 P2 P3
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H10.
Subgoal 2.1.2.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t P2 P3
H13 : bisim_up_to refl_t P1 Q3
============================
bisim_t P1 Q3 P2 P3
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.1.2.1.1:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t P2 P3
H13 : bisim_up_to refl_t P1 Q3
============================
bisim_up_to refl_t P1 Q3
Subgoal 2.1.2.1.2 is:
bisim_up_to refl_t P2 P3
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.1.2.1.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t P2 P3
H13 : bisim_up_to refl_t P1 Q3
============================
bisim_up_to refl_t P2 P3
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.1.2.2:
Variables: P, Q, A, P1, P2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one Q A P1
H3 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one P A P2
H10 : bisim_t P2 P3 P1 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.2 is:
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2.2:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall X M, oneb Q (dn X) M -> (exists N, oneb P (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.2:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : oneb Q (dn X) M
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.2:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H7 to H2.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N, oneb P (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M1.
Subgoal 2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M1 /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.2.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb P (dn X) M1
Subgoal 2.2.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N2.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N1, forall W, bisim_t (M W) (N2 W) (M1 W) (N1 W) /\
bisim_up_to bisim_t (N2 W) (N1 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M2.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, bisim_t (M W) (N2 W) (M1 W) (M2 W) /\
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H10 with W = W.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H11 : bisim_t (M1 W) (M2 W) (M W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H11.
Subgoal 2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (M1 W) (M2 W)
H14 : bisim_up_to refl_t (M W) (N2 W)
============================
bisim_t (M W) (N2 W) (M1 W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.2.2.1:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (M1 W) (M2 W)
H14 : bisim_up_to refl_t (M W) (N2 W)
============================
bisim_t (M W) (N2 W) (M1 W) (M2 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.2.2.1.1:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (M1 W) (M2 W)
H14 : bisim_up_to refl_t (M W) (N2 W)
============================
bisim_up_to refl_t (M W) (N2 W)
Subgoal 2.2.2.1.2 is:
bisim_up_to refl_t (M1 W) (M2 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.2.2.1.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (M1 W) (M2 W)
H14 : bisim_up_to refl_t (M W) (N2 W)
============================
bisim_up_to refl_t (M1 W) (M2 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.2.2.2:
Variables: P, Q, X, M, M1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (dn X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (dn X) M1
H10 : forall W, bisim_t (M1 W) (M2 W) (M W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (M1 W) (M2 W)
H14 : bisim_up_to refl_t (M W) (N2 W)
============================
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.3 is:
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2.3:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall X M, oneb Q (up X) M -> (exists N, oneb P (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.3:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : oneb Q (up X) M
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.3:
Variables: P, Q, X, M
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H8 to H2.
Subgoal 2.3:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N, oneb P (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M1.
Subgoal 2.3:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M1 /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.3.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb P (up X) M1
Subgoal 2.3.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (M1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N2.
Subgoal 2.3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N1, nabla W, bisim_t (M W) (N2 W) (M1 W) (N1 W) /\
bisim_up_to bisim_t (N2 W) (N1 W) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M2.
Subgoal 2.3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, bisim_t (M W) (N2 W) (M1 W) (M2 W) /\
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H10 : bisim_t (M1 n1) (M2 n1) (M n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1) /\
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H10.
Subgoal 2.3.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
H13 : bisim_up_to refl_t (M n1) (N2 n1)
============================
bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1) /\
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.3.2.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
H13 : bisim_up_to refl_t (M n1) (N2 n1)
============================
bisim_t (M n1) (N2 n1) (M1 n1) (M2 n1)
Subgoal 2.3.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.3.2.1.1:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
H13 : bisim_up_to refl_t (M n1) (N2 n1)
============================
bisim_up_to refl_t (M n1) (N2 n1)
Subgoal 2.3.2.1.2 is:
bisim_up_to refl_t (M1 n1) (M2 n1)
Subgoal 2.3.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.3.2.1.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
H13 : bisim_up_to refl_t (M n1) (N2 n1)
============================
bisim_up_to refl_t (M1 n1) (M2 n1)
Subgoal 2.3.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.3.2.2:
Variables: P, Q, X, M, M1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb Q (up X) M
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb P (up X) M1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (M1 n1) (M2 n1)
H13 : bisim_up_to refl_t (M n1) (N2 n1)
============================
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 2.4 is:
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2.4:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall A Q1, one P A Q1 -> (exists P1, one Q A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.4:
Variables: P, Q, A, Q1
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : one P A Q1
============================
exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.4:
Variables: P, Q, A, Q1
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H3 to H2.
Subgoal 2.4:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists P1, one Q A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q2.
Subgoal 2.4:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2 /\ (exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\
bisim_up_to bisim_t P2 Q3 +)
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.4.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
one Q A Q2
Subgoal 2.4.2 is:
exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists P2 Q3, bisim_t Q2 P2 Q1 Q3 /\ bisim_up_to bisim_t P2 Q3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists Q3.
Subgoal 2.4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
exists Q4, bisim_t Q2 Q3 Q1 Q4 /\ bisim_up_to bisim_t Q3 Q4 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists P3.
Subgoal 2.4.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_t Q2 Q3 Q1 P3 /\ bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.4.2.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_t Q2 Q3 Q1 P3
Subgoal 2.4.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H10.
Subgoal 2.4.2.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t Q1 P3
H13 : bisim_up_to refl_t Q2 Q3
============================
bisim_t Q2 Q3 Q1 P3
Subgoal 2.4.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.4.2.1.1:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t Q1 P3
H13 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t Q2 Q3
Subgoal 2.4.2.1.2 is:
bisim_up_to refl_t Q1 P3
Subgoal 2.4.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.4.2.1.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H11 : bisim_up_to bisim_t P3 Q3
H12 : bisim_up_to refl_t Q1 P3
H13 : bisim_up_to refl_t Q2 Q3
============================
bisim_up_to refl_t Q1 P3
Subgoal 2.4.2.2 is:
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.4.2.2:
Variables: P, Q, A, Q1, Q2, P3, Q3
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : one P A Q1
H3 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : one Q A Q2
H10 : bisim_t Q1 P3 Q2 Q3
H11 : bisim_up_to bisim_t P3 Q3
============================
bisim_up_to bisim_t Q3 P3 +
Subgoal 2.5 is:
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2.5:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall X N, oneb P (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.5:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : oneb P (dn X) N
============================
exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.5:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H4 to H2.
Subgoal 2.5:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M, oneb Q (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N1.
Subgoal 2.5:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N1 /\ (exists M2 N2, forall W,
bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.5.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
oneb Q (dn X) N1
Subgoal 2.5.2 is:
exists M2 N2, forall W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M2 N2, forall W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N2.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N3, forall W, bisim_t (N1 W) (N2 W) (N W) (N3 W) /\
bisim_up_to bisim_t (N2 W) (N3 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M2.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
forall W, bisim_t (N1 W) (N2 W) (N W) (M2 W) /\
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H10 with W = W.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H11 : bisim_t (N W) (M2 W) (N1 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H11.
Subgoal 2.5.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (N W) (M2 W)
H14 : bisim_up_to refl_t (N1 W) (N2 W)
============================
bisim_t (N1 W) (N2 W) (N W) (M2 W) /\ bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.5.2.1:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (N W) (M2 W)
H14 : bisim_up_to refl_t (N1 W) (N2 W)
============================
bisim_t (N1 W) (N2 W) (N W) (M2 W)
Subgoal 2.5.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.5.2.1.1:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (N W) (M2 W)
H14 : bisim_up_to refl_t (N1 W) (N2 W)
============================
bisim_up_to refl_t (N1 W) (N2 W)
Subgoal 2.5.2.1.2 is:
bisim_up_to refl_t (N W) (M2 W)
Subgoal 2.5.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.5.2.1.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (N W) (M2 W)
H14 : bisim_up_to refl_t (N1 W) (N2 W)
============================
bisim_up_to refl_t (N W) (M2 W)
Subgoal 2.5.2.2 is:
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.5.2.2:
Variables: P, Q, X, N, N1, M2, N2, W
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (dn X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (dn X) N1
H10 : forall W, bisim_t (N W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : bisim_up_to bisim_t (M2 W) (N2 W)
H13 : bisim_up_to refl_t (N W) (M2 W)
H14 : bisim_up_to refl_t (N1 W) (N2 W)
============================
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 2.6 is:
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 2.6:
Variables: P, Q
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
============================
forall X N, oneb P (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.6:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H1 : bisim_up_to bisim_t P Q
H2 : oneb P (up X) N
============================
exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H1.
Subgoal 2.6:
Variables: P, Q, X, N
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < apply H5 to H2.
Subgoal 2.6:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M, oneb Q (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N1.
Subgoal 2.6:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N1 /\ (exists M2 N2, nabla W,
bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.6.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
oneb Q (up X) N1
Subgoal 2.6.2 is:
exists M2 N2, nabla W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M2 N2, nabla W, bisim_t (N1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists N2.
Subgoal 2.6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N3, nabla W, bisim_t (N1 W) (N2 W) (N W) (N3 W) /\
bisim_up_to bisim_t (N2 W) (N3 W) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < exists M2.
Subgoal 2.6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
nabla W, bisim_t (N1 W) (N2 W) (N W) (M2 W) /\
bisim_up_to bisim_t (N2 W) (M2 W) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < intros.
Subgoal 2.6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H10 : bisim_t (N n1) (M2 n1) (N1 n1) (N2 n1)
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1) /\
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < case H10.
Subgoal 2.6.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (N n1) (M2 n1)
H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1) /\
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < split.
Subgoal 2.6.2.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (N n1) (M2 n1)
H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_t (N1 n1) (N2 n1) (N n1) (M2 n1)
Subgoal 2.6.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < unfold.
Subgoal 2.6.2.1.1:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (N n1) (M2 n1)
H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to refl_t (N1 n1) (N2 n1)
Subgoal 2.6.2.1.2 is:
bisim_up_to refl_t (N n1) (M2 n1)
Subgoal 2.6.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.6.2.1.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (N n1) (M2 n1)
H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to refl_t (N n1) (M2 n1)
Subgoal 2.6.2.2 is:
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < search.
Subgoal 2.6.2.2:
Variables: P, Q, X, N, N1, M2, N2
CH : forall P Q, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q P +
H2 : oneb P (up X) N
H3 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H4 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H5 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H7 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H8 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : oneb Q (up X) N1
H11 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H12 : bisim_up_to refl_t (N n1) (M2 n1)
H13 : bisim_up_to refl_t (N1 n1) (N2 n1)
============================
bisim_up_to bisim_t (N2 n1) (M2 n1) +
Subgoal 3 is:
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < backchain CH.
Subgoal 3:
============================
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R
bisimB_is_equiv_th < coinduction.
Subgoal 3:
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
============================
forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R #
bisimB_is_equiv_th < intros.
Subgoal 3:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
bisim_up_to bisim_t P R #
bisimB_is_equiv_th < unfold.
Subgoal 3.1:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall A P1, one P A P1 -> (exists Q1, one R A Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.1:
Variables: P, Q, R, A, P1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : one P A P1
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H1.
Subgoal 3.1:
Variables: P, Q, R, A, P1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H4 to H3.
Subgoal 3.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H2.
Subgoal 3.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H13 to H10.
Subgoal 3.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
exists Q1, one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists Q1.
Subgoal 3.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
one R A Q1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.1.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
one R A Q1
Subgoal 3.1.2 is:
exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists P3.
Subgoal 3.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
exists Q2, bisim_t P1 P3 Q1 Q2 /\ bisim_up_to bisim_t P3 Q2 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists Q4.
Subgoal 3.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H11 : bisim_t P1 P3 Q2 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
============================
bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H11.
Subgoal 3.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H20 : bisim_t Q2 P2 Q1 Q4
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
============================
bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H20.
Subgoal 3.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
============================
bisim_t P1 P3 Q1 Q4 /\ bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.1.2.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
============================
bisim_t P1 P3 Q1 Q4
Subgoal 3.1.2.2 is:
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < unfold.
Subgoal 3.1.2.1.1:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
============================
bisim_up_to refl_t P1 P3
Subgoal 3.1.2.1.2 is:
bisim_up_to refl_t Q1 Q4
Subgoal 3.1.2.2 is:
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.1.2.1.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
============================
bisim_up_to refl_t Q1 Q4
Subgoal 3.1.2.2 is:
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.1.2.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
============================
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_sym to H23.
Subgoal 3.1.2.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
H26 : bisim_up_to refl_t Q3 Q2
============================
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_trans to H26 H24.
Subgoal 3.1.2.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
H26 : bisim_up_to refl_t Q3 Q2
H27 : bisim_up_to refl_t Q3 P2
============================
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply subst_in_bisimB to H12 H27.
Subgoal 3.1.2.2:
Variables: P, Q, R, A, P1, Q2, P3, Q3, Q1, P2, Q4
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one P A P1
H4 : forall A P1, one P A P1 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P1, one P A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A Q2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P1, one Q A P1 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P1, one Q A P1 /\ (exists P3 Q3,
bisim_t P1 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one R A Q1
H21 : bisim_up_to bisim_t P2 Q4
H22 : bisim_up_to refl_t P1 P3
H23 : bisim_up_to refl_t Q2 Q3
H24 : bisim_up_to refl_t Q2 P2
H25 : bisim_up_to refl_t Q1 Q4
H26 : bisim_up_to refl_t Q3 Q2
H27 : bisim_up_to refl_t Q3 P2
H28 : bisim_up_to bisim_t P3 P2
============================
bisim_up_to bisim_t P3 Q4 +
Subgoal 3.2 is:
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < backchain CH with P = P3, Q = P2, R = Q4.
Subgoal 3.2:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall X M, oneb P (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.2:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (dn X) M
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H1.
Subgoal 3.2:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H5 to H3.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H2.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H13 to H10.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
exists N, oneb R (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists N1.
Subgoal 3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
oneb R (dn X) N1 /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
oneb R (dn X) N1
Subgoal 3.2.2 is:
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
exists M2 N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists M2.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
exists N2, forall W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists N3.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
forall W, bisim_t (M W) (M2 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H11 with W = W.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H19 with W = W.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H22 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H20.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H22 : bisim_t (N W) (M1 W) (N1 W) (N3 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H22.
Subgoal 3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W) /\ bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.2.2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_t (M W) (M2 W) (N1 W) (N3 W)
Subgoal 3.2.2.2 is:
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < unfold.
Subgoal 3.2.2.1.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to refl_t (M W) (M2 W)
Subgoal 3.2.2.1.2 is:
bisim_up_to refl_t (N1 W) (N3 W)
Subgoal 3.2.2.2 is:
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.2.2.1.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to refl_t (N1 W) (N3 W)
Subgoal 3.2.2.2 is:
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
============================
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
H28 : bisim_up_to refl_t (N2 W) (N W)
============================
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_trans to H28 H26.
Subgoal 3.2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
H28 : bisim_up_to refl_t (N2 W) (N W)
H29 : bisim_up_to refl_t (N2 W) (M1 W)
============================
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply subst_in_bisimB to H21 H29.
Subgoal 3.2.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (dn X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) N
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb R (dn X) N1
H19 : forall W, bisim_t (N W) (M1 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M1 W) (N3 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M1 W) (N3 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (N W) (M1 W)
H27 : bisim_up_to refl_t (N1 W) (N3 W)
H28 : bisim_up_to refl_t (N2 W) (N W)
H29 : bisim_up_to refl_t (N2 W) (M1 W)
H30 : bisim_up_to bisim_t (M2 W) (M1 W)
============================
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.3 is:
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < backchain CH with P = M2 W, Q = M1 W, R = N3 W.
Subgoal 3.3:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall X M, oneb P (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.3:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (up X) M
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H1.
Subgoal 3.3:
Variables: P, Q, R, X, M
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H6 to H3.
Subgoal 3.3:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H2 : bisim_up_to bisim_t Q R
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H2.
Subgoal 3.3:
Variables: P, Q, R, X, M, N, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H15 to H10.
Subgoal 3.3:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
exists N, oneb R (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists N1.
Subgoal 3.3:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
oneb R (up X) N1 /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.3.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
oneb R (up X) N1
Subgoal 3.3.2 is:
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists M2.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
exists N2, nabla W, bisim_t (M W) (M2 W) (N1 W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists N3.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
nabla W, bisim_t (M W) (M2 W) (N1 W) (N3 W) /\
bisim_up_to bisim_t (M2 W) (N3 W) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
============================
bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H11.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H20 : bisim_t (N n1) (M1 n1) (N1 n1) (N3 n1)
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
============================
bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H20.
Subgoal 3.3.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
============================
bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1) /\
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.3.2.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
============================
bisim_t (M n1) (M2 n1) (N1 n1) (N3 n1)
Subgoal 3.3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < unfold.
Subgoal 3.3.2.1.1:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
============================
bisim_up_to refl_t (M n1) (M2 n1)
Subgoal 3.3.2.1.2 is:
bisim_up_to refl_t (N1 n1) (N3 n1)
Subgoal 3.3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.3.2.1.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
============================
bisim_up_to refl_t (N1 n1) (N3 n1)
Subgoal 3.3.2.2 is:
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_sym to H23.
Subgoal 3.3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
H26 : bisim_up_to refl_t (N2 n1) (N n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_trans to H26 H24.
Subgoal 3.3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
H26 : bisim_up_to refl_t (N2 n1) (N n1)
H27 : bisim_up_to refl_t (N2 n1) (M1 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply subst_in_bisimB to H12 H27.
Subgoal 3.3.2.2:
Variables: P, Q, R, X, M, N, M2, N2, N1, M1, N3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb P (up X) M
H4 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) N
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb R (up X) N1
H21 : bisim_up_to bisim_t (M1 n1) (N3 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (N n1) (M1 n1)
H25 : bisim_up_to refl_t (N1 n1) (N3 n1)
H26 : bisim_up_to refl_t (N2 n1) (N n1)
H27 : bisim_up_to refl_t (N2 n1) (M1 n1)
H28 : bisim_up_to bisim_t (M2 n1) (M1 n1)
============================
bisim_up_to bisim_t (M2 n1) (N3 n1) +
Subgoal 3.4 is:
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < backchain CH with P = M2 n1, Q = M1 n1, R = N3 n1.
Subgoal 3.4:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall A Q1, one R A Q1 -> (exists P1, one P A P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.4:
Variables: P, Q, R, A, Q1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : one R A Q1
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H2.
Subgoal 3.4:
Variables: P, Q, R, A, Q1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H7 to H3.
Subgoal 3.4:
Variables: P, Q, R, A, Q1, P2, P3, Q3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H1.
Subgoal 3.4:
Variables: P, Q, R, A, Q1, P2, P3, Q3
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H16 to H10.
Subgoal 3.4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
exists P1, one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists P1.
Subgoal 3.4:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
one P A P1 /\ (exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.4.1:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
one P A P1
Subgoal 3.4.2 is:
exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists P4.
Subgoal 3.4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
exists Q2, bisim_t P1 P4 Q1 Q2 /\ bisim_up_to bisim_t P4 Q2 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists Q3.
Subgoal 3.4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H11 : bisim_t P2 P3 Q1 Q3
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
============================
bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H11.
Subgoal 3.4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H20 : bisim_t P1 P4 P2 Q2
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
============================
bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H20.
Subgoal 3.4.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
============================
bisim_t P1 P4 Q1 Q3 /\ bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.4.2.1:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
============================
bisim_t P1 P4 Q1 Q3
Subgoal 3.4.2.2 is:
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < unfold.
Subgoal 3.4.2.1.1:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
============================
bisim_up_to refl_t P1 P4
Subgoal 3.4.2.1.2 is:
bisim_up_to refl_t Q1 Q3
Subgoal 3.4.2.2 is:
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.4.2.1.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
============================
bisim_up_to refl_t Q1 Q3
Subgoal 3.4.2.2 is:
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.4.2.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
============================
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.4.2.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
H26 : bisim_up_to refl_t Q2 P2
============================
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_trans to H26 H22.
Subgoal 3.4.2.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
H26 : bisim_up_to refl_t Q2 P2
H27 : bisim_up_to refl_t Q2 P3
============================
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply subst_in_bisimB to H21 H27.
Subgoal 3.4.2.2:
Variables: P, Q, R, A, Q1, P2, P3, Q3, P1, P4, Q2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : one R A Q1
H4 : forall A P2, one Q A P2 -> (exists Q1, one R A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q1, one R A Q1 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : one Q A P2
H12 : bisim_up_to bisim_t P3 Q3
H13 : forall A P2, one P A P2 -> (exists Q1, one Q A Q1 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q1, one Q A Q1 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q1 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : one P A P1
H21 : bisim_up_to bisim_t P4 Q2
H22 : bisim_up_to refl_t P2 P3
H23 : bisim_up_to refl_t Q1 Q3
H24 : bisim_up_to refl_t P1 P4
H25 : bisim_up_to refl_t P2 Q2
H26 : bisim_up_to refl_t Q2 P2
H27 : bisim_up_to refl_t Q2 P3
H28 : bisim_up_to bisim_t P4 P3
============================
bisim_up_to bisim_t P4 Q3 +
Subgoal 3.5 is:
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < backchain CH with P = P4, Q = P3, R = Q3.
Subgoal 3.5:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall X N, oneb R (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.5:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : oneb R (dn X) N
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H2.
Subgoal 3.5:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H8 to H3.
Subgoal 3.5:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H1.
Subgoal 3.5:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H16 to H10.
Subgoal 3.5:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists M, oneb P (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists M1.
Subgoal 3.5:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
oneb P (dn X) M1 /\ (exists M2 N2, forall W,
bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.5.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
oneb P (dn X) M1
Subgoal 3.5.2 is:
exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists M2 N2, forall W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists M3.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
exists N2, forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < exists N2.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
forall W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H11 with W = W.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply H19 with W = W.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H20 : bisim_t (M W) (M2 W) (N W) (N2 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H20.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H22 : bisim_t (M1 W) (M3 W) (M W) (N1 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < case H22.
Subgoal 3.5.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < split.
Subgoal 3.5.2.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_t (M1 W) (M3 W) (N W) (N2 W)
Subgoal 3.5.2.2 is:
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < unfold.
Subgoal 3.5.2.1.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (M1 W) (M3 W)
Subgoal 3.5.2.1.2 is:
bisim_up_to refl_t (N W) (N2 W)
Subgoal 3.5.2.2 is:
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.5.2.1.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to refl_t (N W) (N2 W)
Subgoal 3.5.2.2 is:
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < search.
Subgoal 3.5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
============================
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_sym to H27.
Subgoal 3.5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H28 : bisim_up_to refl_t (N1 W) (M W)
============================
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply bisim_trans to H28 H24.
Subgoal 3.5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H28 : bisim_up_to refl_t (N1 W) (M W)
H29 : bisim_up_to refl_t (N1 W) (M2 W)
============================
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < apply subst_in_bisimB to H23 H29.
Subgoal 3.5.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1, W
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (dn X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (dn X) M
H11 : forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)
H12 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H13 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H14 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H16 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H17 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : oneb P (dn X) M1
H19 : forall W, bisim_t (M1 W) (M3 W) (M W) (N1 W) /\
bisim_up_to bisim_t (M3 W) (N1 W)
H21 : bisim_up_to bisim_t (M2 W) (N2 W)
H23 : bisim_up_to bisim_t (M3 W) (N1 W)
H24 : bisim_up_to refl_t (M W) (M2 W)
H25 : bisim_up_to refl_t (N W) (N2 W)
H26 : bisim_up_to refl_t (M1 W) (M3 W)
H27 : bisim_up_to refl_t (M W) (N1 W)
H28 : bisim_up_to refl_t (N1 W) (M W)
H29 : bisim_up_to refl_t (N1 W) (M2 W)
H30 : bisim_up_to bisim_t (M3 W) (M2 W)
============================
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 3.6 is:
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < backchain CH with P = M3 W, Q = M2 W, R = N2 W.
Subgoal 3.6:
Variables: P, Q, R
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
============================
forall X N, oneb R (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
bisimB_is_equiv_th < intros.
Subgoal 3.6:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H2 : bisim_up_to bisim_t Q R
H3 : oneb R (up X) N
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < case H2.
Subgoal 3.6:
Variables: P, Q, R, X, N
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < apply H9 to H3.
Subgoal 3.6:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H1 : bisim_up_to bisim_t P Q
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < case H1.
Subgoal 3.6:
Variables: P, Q, R, X, N, M, M2, N2
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < apply H18 to H10.
Subgoal 3.6:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists M, oneb P (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < exists M1.
Subgoal 3.6:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1 /\ (exists M2 N2, nabla W,
bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
bisimB_is_equiv_th < split.
Subgoal 3.6.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
oneb P (up X) M1
Subgoal 3.6.2 is:
exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisimB_is_equiv_th < search.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists M2 N2, nabla W, bisim_t (M1 W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
bisimB_is_equiv_th < exists M3.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
exists N2, nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
bisimB_is_equiv_th < exists N2.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
nabla W, bisim_t (M1 W) (M3 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
bisimB_is_equiv_th < intros.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H11 : bisim_t (M n1) (M2 n1) (N n1) (N2 n1)
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < case H11.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H20 : bisim_t (M1 n1) (M3 n1) (M n1) (N1 n1)
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
============================
bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < case H20.
Subgoal 3.6.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1) /\
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < split.
Subgoal 3.6.2.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
============================
bisim_t (M1 n1) (M3 n1) (N n1) (N2 n1)
Subgoal 3.6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < unfold.
Subgoal 3.6.2.1.1:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
============================
bisim_up_to refl_t (M1 n1) (M3 n1)
Subgoal 3.6.2.1.2 is:
bisim_up_to refl_t (N n1) (N2 n1)
Subgoal 3.6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < search.
Subgoal 3.6.2.1.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
============================
bisim_up_to refl_t (N n1) (N2 n1)
Subgoal 3.6.2.2 is:
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < search.
Subgoal 3.6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < apply bisim_sym to H25.
Subgoal 3.6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
H26 : bisim_up_to refl_t (N1 n1) (M n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < apply bisim_trans to H26 H22.
Subgoal 3.6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
H26 : bisim_up_to refl_t (N1 n1) (M n1)
H27 : bisim_up_to refl_t (N1 n1) (M2 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < apply subst_in_bisimB to H21 H27.
Subgoal 3.6.2.2:
Variables: P, Q, R, X, N, M, M2, N2, M1, M3, N1
CH : forall P Q R, bisim_up_to bisim_t P Q -> bisim_up_to bisim_t Q R ->
bisim_up_to bisim_t P R +
H3 : oneb R (up X) N
H4 : forall A P2, one Q A P2 -> (exists Q2, one R A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H5 : forall X M, oneb Q (dn X) M -> (exists N, oneb R (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H6 : forall X M, oneb Q (up X) M -> (exists N, oneb R (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H7 : forall A Q2, one R A Q2 -> (exists P2, one Q A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H8 : forall X N, oneb R (dn X) N -> (exists M, oneb Q (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H9 : forall X N, oneb R (up X) N -> (exists M, oneb Q (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H10 : oneb Q (up X) M
H12 : bisim_up_to bisim_t (M2 n1) (N2 n1)
H13 : forall A P2, one P A P2 -> (exists Q2, one Q A Q2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H14 : forall X M, oneb P (dn X) M -> (exists N, oneb Q (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H15 : forall X M, oneb P (up X) M -> (exists N, oneb Q (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H16 : forall A Q2, one Q A Q2 -> (exists P2, one P A P2 /\ (exists P3 Q3,
bisim_t P2 P3 Q2 Q3 /\ bisim_up_to bisim_t P3 Q3))
H17 : forall X N, oneb Q (dn X) N -> (exists M, oneb P (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H18 : forall X N, oneb Q (up X) N -> (exists M, oneb P (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W)))
H19 : oneb P (up X) M1
H21 : bisim_up_to bisim_t (M3 n1) (N1 n1)
H22 : bisim_up_to refl_t (M n1) (M2 n1)
H23 : bisim_up_to refl_t (N n1) (N2 n1)
H24 : bisim_up_to refl_t (M1 n1) (M3 n1)
H25 : bisim_up_to refl_t (M n1) (N1 n1)
H26 : bisim_up_to refl_t (N1 n1) (M n1)
H27 : bisim_up_to refl_t (N1 n1) (M2 n1)
H28 : bisim_up_to bisim_t (M3 n1) (M2 n1)
============================
bisim_up_to bisim_t (M3 n1) (N2 n1) +
bisimB_is_equiv_th < backchain CH with P = M3 n1, Q = M2 n1, R = N2 n1.
Proof completed.
Abella < Theorem faithful_par :
forall P P1 A R1, (exists R2, one (par P R1) A P1 -> P1 = par P R2 /\
(forall Q, one (par Q R1) A (par Q R2))) \/ (one (par P R1) A P1 ->
(exists P2 B R2, one P B P2 /\ P1 = par P2 R2 /\ (forall Q Q1,
one Q B Q1 -> one (par Q R1) A (par Q1 R2)))).
============================
forall P P1 A R1, (exists R2, one (par P R1) A P1 -> P1 = par P R2 /\
(forall Q, one (par Q R1) A (par Q R2))) \/ (one (par P R1) A P1 ->
(exists P2 B R2, one P B P2 /\ P1 = par P2 R2 /\ (forall Q Q1,
one Q B Q1 -> one (par Q R1) A (par Q1 R2))))
faithful_par < skip.
Proof completed.
Abella < Theorem bisimK_is_subst_th :
subst_rel (bisim_up_to context_t).
============================
subst_rel (bisim_up_to context_t)
bisimK_is_subst_th < skip.
Proof completed.
Abella < Theorem bisim_par_zeroEl :
forall P, bisim_up_to refl_t (par P null) P.
============================
forall P, bisim_up_to refl_t (par P null) P
bisim_par_zeroEl < skip.
Proof completed.
Abella < Theorem bisim_par_comm :
forall P Q, bisim_up_to refl_t (par P Q) (par Q P).
============================
forall P Q, bisim_up_to refl_t (par P Q) (par Q P)
bisim_par_comm < skip.
Proof completed.
Abella < Theorem bisim_par_assoc :
forall P Q R, bisim_up_to refl_t (par (par P Q) R) (par P (par Q R)).
============================
forall P Q R, bisim_up_to refl_t (par (par P Q) R) (par P (par Q R))
bisim_par_assoc < skip.
Proof completed.
Abella < Theorem bisim_par_cong_right :
forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R).
============================
forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par P R) (par Q R)
bisim_par_cong_right < skip.
Proof completed.
Abella < Theorem bisim_par_cong_left :
forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par R P) (par R Q).
============================
forall P Q R, bisim_up_to refl_t P Q ->
bisim_up_to refl_t (par R P) (par R Q)
bisim_par_cong_left < skip.
Proof completed.
Abella < Theorem bisim_repl_absorb :
forall P, bisim_up_to refl_t (par (repl P) P) (repl P).
============================
forall P, bisim_up_to refl_t (par (repl P) P) (repl P)
bisim_repl_absorb < skip.
Proof completed.
Abella < Theorem example_1_bisim :
forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))).
============================
forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null))))
example_1_bisim < coinduction.
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) #
example_1_bisim < intros.
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) #
example_1_bisim < unfold.
Subgoal 1:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall A1 P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 ->
(exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 1:
Variables: A, B, A1, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H1.
Subgoal 1.1:
Variables: A, B, A1, P1, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : one (plus (in A (x\null)) (in B (x\null))) A1 P2
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P1 Q2,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 1.1.1:
Variables: A, B, A1, P1, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in A (x\null)) A1 P2
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P1 Q2,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P1 Q2,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 1.1.2:
Variables: A, B, A1, P1, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in B (x\null)) A1 P2
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 /\
(exists P1 Q2,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) P2) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 1.2:
Variables: A, B, A1, P1, X, Y, M, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : one (plus (in A (x\null)) (in B (x\null))) (up X Y) P2
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 1.2.1:
Variables: A, B, A1, P1, X, Y, M, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
H4 : one (in A (x\null)) (up X Y) P2
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 1.2.2:
Variables: A, B, A1, P1, X, Y, M, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
H4 : one (in B (x\null)) (up X Y) P2
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (plus (in A (x\null)) (in B (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 1.3:
Variables: A, B, A1, P1, X, M, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (plus (in A (x\null)) (in B (x\null))) (up X) N
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 1.3.1:
Variables: A, B, A1, P1, X, M, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
H4 : oneb (in A (x\null)) (up X) N
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 1.3.2 is:
exists Q1, one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 1.3.2:
Variables: A, B, A1, P1, X, M, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M
H4 : oneb (in B (x\null)) (up X) N
============================
exists Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) tau Q1 /\
(exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (plus (in A (x\null)) (in B (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 2:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 2:
Variables: A, B, X, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H1.
Subgoal 2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (plus (in A (x\null)) (in B (x\null))) (dn X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 2.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in A (x\null)) (dn X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 2.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N,
oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (par (repl (in X (x\null))) null) (repl (in B (x\null))).
Subgoal 2.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) (x\par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 2.1.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (par (repl (in X (x\null))) (repl (in B (x\null)))) (dn X) (x\par (par (repl (in X (x\null))) null) (repl (in B (x\null))))
Subgoal 2.1.2 is:
exists M2 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.1.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M2 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M2 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 2.1.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (N2 W) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (in X (x\null))) (repl (in B (x\null))).
Subgoal 2.1.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 2.1.2.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < unfold.
Subgoal 2.1.2.1.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
Subgoal 2.1.2.1.2 is:
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 2.1.2.1.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
============================
bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
Subgoal 2.1.2.1.2 is:
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.1.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.1.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_cong_right to H4 with R = repl (in B (x\null)).
Subgoal 2.1.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.1.2.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 2.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < backchain CH.
Subgoal 2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in B (x\null)) (dn X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) N /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null).
Subgoal 2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) (x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 2.2.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (par (repl (in A (x\null))) (repl (in X (x\null)))) (dn X) (x\par (repl (in A (x\null))) (par (repl (in X (x\null))) null))
Subgoal 2.2.2 is:
exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 2.2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (in A (x\null))) (repl (in X (x\null))).
Subgoal 2.2.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 2.2.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 2.2.2.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < unfold.
Subgoal 2.2.2.1.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
Subgoal 2.2.2.1.2 is:
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 2.2.2.1.1:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
Subgoal 2.2.2.1.2 is:
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.2.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_cong_left to H4 with R = repl (in A (x\null)).
Subgoal 2.2.2.1.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 2.2.2.2:
Variables: A, B, X, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < backchain CH.
Subgoal 3:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall X M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M ->
(exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 3:
Variables: A, B, X, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H1.
Subgoal 3:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (plus (in A (x\null)) (in B (x\null))) (up X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 3.1:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in A (x\null)) (up X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3.2 is:
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 3.2:
Variables: A, B, X, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in B (x\null)) (up X) M1
============================
exists N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N /\
(exists M2 N2, nabla W,
bisim_t (par (repl (plus (in A (x\null)) (in B (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall A1 Q1,
one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1 ->
(exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 4:
Variables: A, B, A1, Q1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : one (par (repl (in A (x\null))) (repl (in B (x\null)))) A1 Q1
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q2, bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H1.
Subgoal 4.1:
Variables: A, B, A1, Q1, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : one (repl (in A (x\null))) A1 P1
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P2 /\
(exists P3 Q2, bisim_t P2 P3 (par P1 (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 4.1.1:
Variables: A, B, A1, Q1, P1, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in A (x\null)) A1 P2
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P3 Q2,
bisim_t P1 P3 (par (par (repl (in A (x\null))) P2) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.1.2 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P3 Q2,
bisim_t P1 P3 (par (par (par P2 (M Y)) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.1.3 is:
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q2,
bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.1.2:
Variables: A, B, A1, Q1, P1, X, Y, M, P2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in A (x\null)) (up X Y) P2
H4 : oneb (in A (x\null)) (dn X) M
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P3 Q2,
bisim_t P1 P3 (par (par (par P2 (M Y)) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.1.3 is:
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q2,
bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.1.3:
Variables: A, B, A1, Q1, P1, X, M, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in A (x\null)) (up X) N
H4 : oneb (in A (x\null)) (dn X) M
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q2,
bisim_t P2 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) (repl (in B (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.2:
Variables: A, B, A1, Q1, Q2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : one (repl (in B (x\null))) A1 Q2
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P1 /\
(exists P2 Q1, bisim_t P1 P2 (par (repl (in A (x\null))) Q2) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 4.2.1:
Variables: A, B, A1, Q1, Q2, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in B (x\null)) A1 P1
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) A1 P2 /\
(exists P3 Q1,
bisim_t P2 P3 (par (repl (in A (x\null))) (par (repl (in B (x\null))) P1)) Q1 /\
bisim_up_to bisim_t P3 Q1 +)
Subgoal 4.2.2 is:
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q1,
bisim_t P2 P3 (par (repl (in A (x\null))) (par (par P1 (M Y)) (repl (in B (x\null))))) Q1 /\
bisim_up_to bisim_t P3 Q1 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q1,
bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.2.2:
Variables: A, B, A1, Q1, Q2, X, Y, M, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : one (in B (x\null)) (up X Y) P1
H4 : oneb (in B (x\null)) (dn X) M
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q1,
bisim_t P2 P3 (par (repl (in A (x\null))) (par (par P1 (M Y)) (repl (in B (x\null))))) Q1 /\
bisim_up_to bisim_t P3 Q1 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q1,
bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.2.3:
Variables: A, B, A1, Q1, Q2, X, M, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in B (x\null)) (up X) N
H4 : oneb (in B (x\null)) (dn X) M
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q1,
bisim_t P1 P2 (par (repl (in A (x\null))) (par (nu (y\par (N y) (M y))) (repl (in B (x\null))))) Q1 /\
bisim_up_to bisim_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.3:
Variables: A, B, A1, Q1, X, N, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (dn X) M
H3 : oneb (repl (in B (x\null))) (up X) N
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.3:
Variables: A, B, A1, Q1, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (dn X) M
H4 : oneb (in B (x\null)) (up X) M1
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2,
bisim_t P1 P2 (nu (y\par (M y) (par (repl (in B (x\null))) (M1 y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 4.4:
Variables: A, B, A1, Q1, X, N, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (up X) M
H3 : oneb (repl (in B (x\null))) (dn X) N
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 4.4:
Variables: A, B, A1, Q1, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (repl (in B (x\null))) (dn X) N
H4 : oneb (in A (x\null)) (up X) M1
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2,
bisim_t P1 P2 (nu (y\par (par (repl (in A (x\null))) (M1 y)) (N y))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.4:
Variables: A, B, A1, Q1, X, N, M, M1, M2
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : oneb (in A (x\null)) (up X) M1
H5 : oneb (in B (x\null)) (dn X) M2
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2,
bisim_t P1 P2 (nu (y\par (par (repl (in A (x\null))) (M1 y)) (par (repl (in B (x\null))) (M2 y)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 4.5:
Variables: A, B, A1, Q1, X, T, Y, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (dn X) M
H3 : one (repl (in B (x\null))) (up X Y) T
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.5:
Variables: A, B, A1, Q1, X, T, Y, M, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (dn X) M
H4 : one (in B (x\null)) (up X Y) P1
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q2,
bisim_t P2 P3 (par (M Y) (par (repl (in B (x\null))) P1)) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 4.6:
Variables: A, B, A1, Q1, X, Y, M, R
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in B (x\null))) (dn X) M
H3 : one (repl (in A (x\null))) (up X Y) R
============================
exists P1, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P1 /\
(exists P2 Q2, bisim_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 4.6:
Variables: A, B, A1, Q1, X, Y, M, R, P1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in B (x\null))) (dn X) M
H4 : one (in A (x\null)) (up X Y) P1
============================
exists P2, one (repl (plus (in A (x\null)) (in B (x\null)))) tau P2 /\
(exists P3 Q2,
bisim_t P2 P3 (par (par (repl (in A (x\null))) P1) (M Y)) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 5 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H4.
Subgoal 5:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N ->
(exists M,
oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 5:
Variables: A, B, X, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (dn X) N
============================
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H1.
Subgoal 5.1:
Variables: A, B, X, N, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (dn X) M
============================
exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_t (M1 W) (M2 W) (par (M W) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 5.1:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in A (x\null)) (dn X) M1
============================
exists M2, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M2 /\
(exists M3 N2, forall W,
bisim_t (M2 W) (M3 W) (par (par (repl (in A (x\null))) (M1 W)) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 5.1:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M2, oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) M2 /\
(exists M3 N2, forall W,
bisim_t (M2 W) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (plus (in X (x\null)) (in B (x\null)))) null.
Subgoal 5.1:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) (x\par (repl (plus (in X (x\null)) (in B (x\null)))) null) /\
(exists M3 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 5.1.1:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (repl (plus (in X (x\null)) (in B (x\null)))) (dn X) (x\par (repl (plus (in X (x\null)) (in B (x\null)))) null)
Subgoal 5.1.2 is:
exists M3 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.1.2:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M3 N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (M3 W) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 5.1.2:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N2, forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (in X (x\null))) (repl (in B (x\null))).
Subgoal 5.1.2:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall W,
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 5.1.2:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 5.1.2.1:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null)))) (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < unfold.
Subgoal 5.1.2.1.1:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
Subgoal 5.1.2.1.2 is:
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in X (x\null)) (in B (x\null))).
Subgoal 5.1.2.1.1:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
============================
bisim_up_to refl_t (par (repl (plus (in X (x\null)) (in B (x\null)))) null) (repl (plus (in X (x\null)) (in B (x\null))))
Subgoal 5.1.2.1.2 is:
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.1.2.1.2:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.1.2.1.2:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_cong_right to H4 with R = repl (in B (x\null)).
Subgoal 5.1.2.1.2:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
============================
bisim_up_to refl_t (par (par (repl (in X (x\null))) null) (repl (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null))))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.1.2.2:
Variables: A, B, X, N, M, M1, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to bisim_t (repl (plus (in X (x\null)) (in B (x\null)))) (par (repl (in X (x\null))) (repl (in B (x\null)))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < backchain CH.
Subgoal 5.2:
Variables: A, B, X, N, N1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in B (x\null))) (dn X) N1
============================
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M /\
(exists M2 N2, forall W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H2.
Subgoal 5.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in B (x\null)) (dn X) M
============================
exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in B (x\null))) (M W))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < case H3.
Subgoal 5.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M1, oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (plus (in A (x\null)) (in X (x\null)))) null.
Subgoal 5.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) (x\par (repl (plus (in A (x\null)) (in X (x\null)))) null) /\
(exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 5.2.1:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
oneb (repl (plus (in A (x\null)) (in X (x\null)))) (dn X) (x\par (repl (plus (in A (x\null)) (in X (x\null)))) null)
Subgoal 5.2.2 is:
exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.2.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists M2 N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (M2 W) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 5.2.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
exists N2, forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (N2 W) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (N2 W) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < exists x\par (repl (in A (x\null))) (repl (in X (x\null))).
Subgoal 5.2.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall W,
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 5.2.2:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null)))) /\
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < split.
Subgoal 5.2.2.1:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < unfold.
Subgoal 5.2.2.1.1:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
Subgoal 5.2.2.1.2 is:
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (plus (in A (x\null)) (in X (x\null))).
Subgoal 5.2.2.1.1:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (plus (in A (x\null)) (in X (x\null)))) null) (repl (plus (in A (x\null)) (in X (x\null))))
Subgoal 5.2.2.1.2 is:
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.2.2.1.2:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.2.1.2:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < apply bisim_par_cong_left to H4 with R = repl (in A (x\null)).
Subgoal 5.2.2.1.2:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (in A (x\null))) (par (repl (in X (x\null))) null)) (par (repl (in A (x\null))) (repl (in X (x\null))))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < search.
Subgoal 5.2.2.2:
Variables: A, B, X, N, N1, M, W
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in X (x\null)))) (par (repl (in A (x\null))) (repl (in X (x\null)))) +
Subgoal 6 is:
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < backchain CH.
Subgoal 6:
Variables: A, B
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
============================
forall X N,
oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N ->
(exists M,
oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_1_bisim < intros.
Subgoal 6:
Variables: A, B, X, N
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H1 : oneb (par (repl (in A (x\null))) (repl (in B (x\null)))) (up X) N
============================
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_1_bisim < case H1.
Subgoal 6.1:
Variables: A, B, X, N, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in A (x\null))) (up X) M
============================
exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M1 /\
(exists M2 N2, nabla W,
bisim_t (M1 W) (M2 W) (par (M W) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_1_bisim < case H2.
Subgoal 6.1:
Variables: A, B, X, N, M, M1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in A (x\null)) (up X) M1
============================
exists M2, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M2 /\
(exists M3 N2, nabla W,
bisim_t (M2 W) (M3 W) (par (par (repl (in A (x\null))) (M1 W)) (repl (in B (x\null)))) (N2 W) /\
bisim_up_to bisim_t (M3 W) (N2 W) +)
Subgoal 6.2 is:
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_1_bisim < case H3.
Subgoal 6.2:
Variables: A, B, X, N, N1
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H2 : oneb (repl (in B (x\null))) (up X) N1
============================
exists M, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M /\
(exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (par (repl (in A (x\null))) (N1 W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_1_bisim < case H2.
Subgoal 6.2:
Variables: A, B, X, N, N1, M
CH : forall A B,
bisim_up_to bisim_t (repl (plus (in A (x\null)) (in B (x\null)))) (par (repl (in A (x\null))) (repl (in B (x\null)))) +
H3 : oneb (in B (x\null)) (up X) M
============================
exists M1, oneb (repl (plus (in A (x\null)) (in B (x\null)))) (up X) M1 /\
(exists M2 N2, nabla W,
bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (par (repl (in B (x\null))) (M W))) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_1_bisim < case H3.
Proof completed.
Abella < Theorem example_2_bisim :
forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))).
============================
forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null)))
example_2_bisim < coinduction.
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) #
example_2_bisim < intros.
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) #
example_2_bisim < unfold.
Subgoal 1:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall A1 P1, one (repl (repl (in A (x\null)))) A1 P1 -> (exists Q1,
one (repl (in A (x\null))) A1 Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 1:
Variables: A, A1, P1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : one (repl (repl (in A (x\null)))) A1 P1
============================
exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H1.
Subgoal 1.1:
Variables: A, A1, P1, P2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : one (repl (in A (x\null))) A1 P2
============================
exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) P2) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 1.1.1:
Variables: A, A1, P1, P2, P3
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : one (in A (x\null)) A1 P3
============================
exists Q1, one (repl (in A (x\null))) A1 Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) P3)) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (par P3 (M Y)) (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H3.
Subgoal 1.1.2:
Variables: A, A1, P1, P2, X, Y, M, P3
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : one (in A (x\null)) (up X Y) P3
H4 : oneb (in A (x\null)) (dn X) M
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (par P3 (M Y)) (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H3.
Subgoal 1.1.3:
Variables: A, A1, P1, P2, X, M, N
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : oneb (in A (x\null)) (up X) N
H4 : oneb (in A (x\null)) (dn X) M
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (repl (repl (in A (x\null)))) (par (nu (y\par (N y) (M y))) (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H3.
Subgoal 1.2:
Variables: A, A1, P1, X, Y, M, P2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : one (repl (in A (x\null))) (up X Y) P2
H3 : oneb (repl (in A (x\null))) (dn X) M
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par P2 (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 1.2:
Variables: A, A1, P1, X, Y, M, P2, P3
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : oneb (repl (in A (x\null))) (dn X) M
H4 : one (in A (x\null)) (up X Y) P3
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P1 Q2,
bisim_t (par (par (par (repl (in A (x\null))) P3) (M Y)) (repl (repl (in A (x\null))))) P1 Q1 Q2 /\
bisim_up_to bisim_t P1 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H4.
Subgoal 1.3:
Variables: A, A1, P1, X, M, N
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (repl (in A (x\null))) (up X) N
H3 : oneb (repl (in A (x\null))) (dn X) M
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (N y) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 1.3:
Variables: A, A1, P1, X, M, N, M1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : oneb (repl (in A (x\null))) (dn X) M
H4 : oneb (in A (x\null)) (up X) M1
============================
exists Q1, one (repl (in A (x\null))) tau Q1 /\ (exists P2 Q2,
bisim_t (par (nu (y\par (par (repl (in A (x\null))) (M1 y)) (M y))) (repl (repl (in A (x\null))))) P2 Q1 Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H4.
Subgoal 2:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall X M, oneb (repl (repl (in A (x\null)))) (dn X) M -> (exists N,
oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 2:
Variables: A, X, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : oneb (repl (repl (in A (x\null)))) (dn X) M
============================
exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H1.
Subgoal 2:
Variables: A, X, M, M1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (repl (in A (x\null))) (dn X) M1
============================
exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M2 N2, forall W,
bisim_t (par (repl (repl (in A (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : oneb (in A (x\null)) (dn X) M2
============================
exists N, oneb (repl (in A (x\null))) (dn X) N /\ (exists M1 N2, forall W,
bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) (M2 W))) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H3.
Subgoal 2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists N, oneb (repl (in X (x\null))) (dn X) N /\ (exists M1 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\par (repl (in X (x\null))) null.
Subgoal 2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
oneb (repl (in X (x\null))) (dn X) (x\par (repl (in X (x\null))) null) /\
(exists M1 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < split.
Subgoal 2.1:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
oneb (repl (in X (x\null))) (dn X) (x\par (repl (in X (x\null))) null)
Subgoal 2.2 is:
exists M1 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 2.2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists M1 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M1 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\repl (repl (in X (x\null))).
Subgoal 2.2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\repl (in X (x\null)).
Subgoal 2.2:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 2.2:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < split.
Subgoal 2.2.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < unfold.
Subgoal 2.2.1.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.1.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_cong_left to H4 with R = repl (repl (in X (x\null))).
Subgoal 2.2.1.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_repl_absorb with P = repl (in X (x\null)).
Subgoal 2.2.1.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_trans to H5 H6.
Subgoal 2.2.1.1:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
H7 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 2.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 2.2.1.2:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 2.2.1.2:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H4 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 2.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 2.2.2:
Variables: A, X, M, M1, M2, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < backchain CH.
Subgoal 3:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall X M, oneb (repl (repl (in A (x\null)))) (up X) M -> (exists N,
oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 3:
Variables: A, X, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : oneb (repl (repl (in A (x\null)))) (up X) M
============================
exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H1.
Subgoal 3:
Variables: A, X, M, M1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (repl (in A (x\null))) (up X) M1
============================
exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M2 N2, nabla W,
bisim_t (par (repl (repl (in A (x\null)))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 3:
Variables: A, X, M, M1, M2
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : oneb (in A (x\null)) (up X) M2
============================
exists N, oneb (repl (in A (x\null))) (up X) N /\ (exists M1 N2, nabla W,
bisim_t (par (repl (repl (in A (x\null)))) (par (repl (in A (x\null))) (M2 W))) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M1 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H3.
Subgoal 4:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall A1 Q1, one (repl (in A (x\null))) A1 Q1 -> (exists P1,
one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 4:
Variables: A, A1, Q1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : one (repl (in A (x\null))) A1 Q1
============================
exists P1, one (repl (repl (in A (x\null)))) A1 P1 /\ (exists P2 Q2,
bisim_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H1.
Subgoal 4.1:
Variables: A, A1, Q1, P1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : one (in A (x\null)) A1 P1
============================
exists P2, one (repl (repl (in A (x\null)))) A1 P2 /\ (exists P3 Q2,
bisim_t P2 P3 (par (repl (in A (x\null))) P1) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.2 is:
exists P2, one (repl (repl (in A (x\null)))) tau P2 /\ (exists P3 Q2,
bisim_t P2 P3 (par (par P1 (M Y)) (repl (in A (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 4.2:
Variables: A, A1, Q1, X, Y, M, P1
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : one (in A (x\null)) (up X Y) P1
H3 : oneb (in A (x\null)) (dn X) M
============================
exists P2, one (repl (repl (in A (x\null)))) tau P2 /\ (exists P3 Q2,
bisim_t P2 P3 (par (par P1 (M Y)) (repl (in A (x\null)))) Q2 /\
bisim_up_to bisim_t P3 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 4.3:
Variables: A, A1, Q1, X, M, N
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (in A (x\null)) (up X) N
H3 : oneb (in A (x\null)) (dn X) M
============================
exists P1, one (repl (repl (in A (x\null)))) tau P1 /\ (exists P2 Q2,
bisim_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A (x\null)))) Q2 /\
bisim_up_to bisim_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 5:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall X N, oneb (repl (in A (x\null))) (dn X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2, forall W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 5:
Variables: A, X, N
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : oneb (repl (in A (x\null))) (dn X) N
============================
exists M, oneb (repl (repl (in A (x\null)))) (dn X) M /\ (exists M2 N2,
forall W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H1.
Subgoal 5:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (in A (x\null)) (dn X) M
============================
exists M1, oneb (repl (repl (in A (x\null)))) (dn X) M1 /\ (exists M2 N2,
forall W,
bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (M W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < case H2.
Subgoal 5:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists M1, oneb (repl (repl (in X (x\null)))) (dn X) M1 /\ (exists M2 N2,
forall W,
bisim_t (M1 W) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null).
Subgoal 5:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
oneb (repl (repl (in X (x\null)))) (dn X) (x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) /\
(exists M2 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < split.
Subgoal 5.1:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
oneb (repl (repl (in X (x\null)))) (dn X) (x\par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null))
Subgoal 5.2 is:
exists M2 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 5.2:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists M2 N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (M2 W) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\repl (repl (in X (x\null))).
Subgoal 5.2:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
exists N2, forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (N2 W) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < exists x\repl (in X (x\null)).
Subgoal 5.2:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall W,
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 5.2:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null))) /\
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < split.
Subgoal 5.2.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < unfold.
Subgoal 5.2.1.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.1.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_cong_left to H3 with R = repl (repl (in X (x\null))).
Subgoal 5.2.1.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_repl_absorb with P = repl (in X (x\null)).
Subgoal 5.2.1.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_trans to H4 H5.
Subgoal 5.2.1.1:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
H4 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (par (repl (repl (in X (x\null)))) (repl (in X (x\null))))
H5 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (repl (in X (x\null)))) (repl (repl (in X (x\null))))
H6 : bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
============================
bisim_up_to refl_t (par (repl (repl (in X (x\null)))) (par (repl (in X (x\null))) null)) (repl (repl (in X (x\null))))
Subgoal 5.2.1.2 is:
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 5.2.1.2:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < apply bisim_par_zeroEl with P = repl (in X (x\null)).
Subgoal 5.2.1.2:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H3 : bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
============================
bisim_up_to refl_t (par (repl (in X (x\null))) null) (repl (in X (x\null)))
Subgoal 5.2.2 is:
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < search.
Subgoal 5.2.2:
Variables: A, X, N, M, W
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
bisim_up_to bisim_t (repl (repl (in X (x\null)))) (repl (in X (x\null))) +
Subgoal 6 is:
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\ bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < backchain CH.
Subgoal 6:
Variables: A
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
============================
forall X N, oneb (repl (in A (x\null))) (up X) N -> (exists M,
oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2, nabla W,
bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +))
example_2_bisim < intros.
Subgoal 6:
Variables: A, X, N
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H1 : oneb (repl (in A (x\null))) (up X) N
============================
exists M, oneb (repl (repl (in A (x\null)))) (up X) M /\ (exists M2 N2,
nabla W, bisim_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_2_bisim < case H1.
Subgoal 6:
Variables: A, X, N, M
CH : forall A,
bisim_up_to bisim_t (repl (repl (in A (x\null)))) (repl (in A (x\null))) +
H2 : oneb (in A (x\null)) (up X) M
============================
exists M1, oneb (repl (repl (in A (x\null)))) (up X) M1 /\ (exists M2 N2,
nabla W,
bisim_t (M1 W) (M2 W) (par (repl (in A (x\null))) (M W)) (N2 W) /\
bisim_up_to bisim_t (M2 W) (N2 W) +)
example_2_bisim < case H2.
Proof completed.
Abella < Theorem example_1_context :
forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))).
============================
forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P)))
example_1_context < coinduction.
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) #
example_1_context < intros.
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) #
example_1_context < unfold.
Subgoal 1:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall A1 P1, one (repl (plus (in A P) (in B P))) A1 P1 -> (exists Q1,
one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 1:
Variables: A, B, P, A1, P1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : one (repl (plus (in A P) (in B P))) A1 P1
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
(exists P2 Q2, bisim_context_t P1 P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H1.
Subgoal 1.1:
Variables: A, B, P, A1, P1, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : one (plus (in A P) (in B P)) A1 P3
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
(exists P2 Q2,
bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 1.1.1:
Variables: A, B, P, A1, P1, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in A P) A1 P3
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
(exists P2 Q2,
bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 1.1.2:
Variables: A, B, P, A1, P1, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in B P) A1 P3
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 /\
(exists P2 Q2,
bisim_context_t (par (repl (plus (in A P) (in B P))) P3) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 1.2:
Variables: A, B, P, A1, P1, X, Y, M, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : one (plus (in A P) (in B P)) (up X Y) P3
H3 : oneb (plus (in A P) (in B P)) (dn X) M
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 1.2.1:
Variables: A, B, P, A1, P1, X, Y, M, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (plus (in A P) (in B P)) (dn X) M
H4 : one (in A P) (up X Y) P3
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 1.2.2:
Variables: A, B, P, A1, P1, X, Y, M, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (plus (in A P) (in B P)) (dn X) M
H4 : one (in B P) (up X Y) P3
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 1.3:
Variables: A, B, P, A1, P1, X, M, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (plus (in A P) (in B P)) (up X) N
H3 : oneb (plus (in A P) (in B P)) (dn X) M
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 1.3.1:
Variables: A, B, P, A1, P1, X, M, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (plus (in A P) (in B P)) (dn X) M
H4 : oneb (in A P) (up X) N
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3.2 is:
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 1.3.2:
Variables: A, B, P, A1, P1, X, M, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (plus (in A P) (in B P)) (dn X) M
H4 : oneb (in B P) (up X) N
============================
exists Q1, one (par (repl (in A P)) (repl (in B P))) tau Q1 /\
(exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (plus (in A P) (in B P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 2:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall X M, oneb (repl (plus (in A P) (in B P))) (dn X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 2:
Variables: A, B, P, X, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : oneb (repl (plus (in A P) (in B P))) (dn X) M
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H1.
Subgoal 2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (plus (in A P) (in B P)) (dn X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 2.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in A P) (dn X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 2.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N, oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1)).
Subgoal 2.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) (x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1))) /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.1.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (par (repl (in X M1)) (repl (in B M1))) (dn X) (x\par (par (repl (in X M1)) (M1 x)) (repl (in B M1)))
Subgoal 2.1.2 is:
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.1.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M2 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\repl (plus (in X M1) (in B M1)).
Subgoal 2.1.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (N2 W) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (in X M1)) (repl (in B M1)).
Subgoal 2.1.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 2.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1)))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) \/
(exists P2 Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R))
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < right.
Subgoal 2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists P2 Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (par (repl (in X M1)) (repl (in B M1))) (M1 W).
Subgoal 2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) /\
(exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.1.2.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 2.1.2.1.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
Subgoal 2.1.2.1.1.2 is:
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_refl with P = par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 2.1.2.1.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
Subgoal 2.1.2.1.1.2 is:
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_comm with P = M1 W, Q = repl (in B M1).
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_cong_left to H4 with R = repl (in X M1).
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = M1 W, R = repl (in B M1).
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = repl (in B M1), R = M1 W.
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_trans to H6 H5.
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_sym to H7.
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_trans to H8 H9.
Subgoal 2.1.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
H10 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 2.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.1.2.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists M1 W.
Subgoal 2.1.2.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W) /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.1.2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W)
Subgoal 2.1.2.1.2.2 is:
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.1.2.1.2.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 2.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.1.2.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 2.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < backchain CH.
Subgoal 2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in B P) (dn X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N, oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) N /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x)).
Subgoal 2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) (x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x))) /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.2.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (par (repl (in A M1)) (repl (in X M1))) (dn X) (x\par (repl (in A M1)) (par (repl (in X M1)) (M1 x)))
Subgoal 2.2.2 is:
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (M2 W) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\repl (plus (in A M1) (in X M1)).
Subgoal 2.2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N2, forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (N2 W) /\
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (in A M1)) (repl (in X M1)).
Subgoal 2.2.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall W,
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) /\
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 2.2.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) /\
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.2.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1)))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 2.2.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (repl (in A M1)) (repl (in X M1))) \/
(exists P2 Q2,
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) P2 (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
(exists R, P2 = par (repl (plus (in A M1) (in X M1))) R /\
Q2 = par (par (repl (in A M1)) (repl (in X M1))) R))
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < right.
Subgoal 2.2.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists P2 Q2,
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) P2 (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
(exists R, P2 = par (repl (plus (in A M1) (in X M1))) R /\
Q2 = par (par (repl (in A M1)) (repl (in X M1))) R)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (repl (plus (in A M1) (in X M1))) (M1 W).
Subgoal 2.2.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists Q2,
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) Q2 /\
(exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
Q2 = par (par (repl (in A M1)) (repl (in X M1))) R)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (par (repl (in A M1)) (repl (in X M1))) (M1 W).
Subgoal 2.2.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) /\
(exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.2.2.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 2.2.2.1.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))
Subgoal 2.2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_refl with P = par (repl (plus (in A M1) (in X M1))) (M1 W).
Subgoal 2.2.2.1.1.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))
============================
bisim_up_to refl_t (par (repl (plus (in A M1) (in X M1))) (M1 W)) (par (repl (plus (in A M1) (in X M1))) (M1 W))
Subgoal 2.2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.2.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in A M1), Q = repl (in X M1), R = M1 W.
Subgoal 2.2.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W)))
============================
bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_sym to H4.
Subgoal 2.2.2.1.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (par (repl (in A M1)) (repl (in X M1))) (M1 W)) (par (repl (in A M1)) (par (repl (in X M1)) (M1 W)))
H5 : bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
============================
bisim_up_to refl_t (par (repl (in A M1)) (par (repl (in X M1)) (M1 W))) (par (par (repl (in A M1)) (repl (in X M1))) (M1 W))
Subgoal 2.2.2.1.2 is:
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.2.2.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists R,
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) R /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) R
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists M1 W.
Subgoal 2.2.2.1.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) (M1 W) /\
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 2.2.2.1.2.1:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in A M1) (in X M1))) (M1 W) = par (repl (plus (in A M1) (in X M1))) (M1 W)
Subgoal 2.2.2.1.2.2 is:
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.2.2.1.2.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (par (repl (in A M1)) (repl (in X M1))) (M1 W) = par (par (repl (in A M1)) (repl (in X M1))) (M1 W)
Subgoal 2.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 2.2.2.2:
Variables: A, B, P, X, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to bisim_context_t (repl (plus (in A M1) (in X M1))) (par (repl (in A M1)) (repl (in X M1))) +
Subgoal 3 is:
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < backchain CH.
Subgoal 3:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall X M, oneb (repl (plus (in A P) (in B P))) (up X) M -> (exists N,
oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 3:
Variables: A, B, P, X, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : oneb (repl (plus (in A P) (in B P))) (up X) M
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H1.
Subgoal 3:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (plus (in A P) (in B P)) (up X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 3.1:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in A P) (up X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3.2 is:
exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 3.2:
Variables: A, B, P, X, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in B P) (up X) M1
============================
exists N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N /\
(exists M2 N2, nabla W,
bisim_context_t (par (repl (plus (in A P) (in B P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 -> (exists P1,
one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall A1 Q1, one (par (repl (in A P)) (repl (in B P))) A1 Q1 ->
(exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 4:
Variables: A, B, P, A1, Q1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : one (par (repl (in A P)) (repl (in B P))) A1 Q1
============================
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H1.
Subgoal 4.1:
Variables: A, B, P, A1, Q1, P2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : one (repl (in A P)) A1 P2
============================
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par P2 (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 4.1.1:
Variables: A, B, P, A1, Q1, P2, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in A P) A1 P3
============================
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (par (repl (in A P)) P3) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.1.2 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (par (par P3 (M Y)) (repl (in A P))) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.1.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.1.2:
Variables: A, B, P, A1, Q1, P2, X, Y, M, P3
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in A P) (up X Y) P3
H4 : oneb (in A P) (dn X) M
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (par (par P3 (M Y)) (repl (in A P))) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.1.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.1.3:
Variables: A, B, P, A1, Q1, P2, X, M, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in A P) (up X) N
H4 : oneb (in A P) (dn X) M
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par (nu (y\par (N y) (M y))) (repl (in A P))) (repl (in B P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.2:
Variables: A, B, P, A1, Q1, Q2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : one (repl (in B P)) A1 Q2
============================
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) Q2) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 4.2.1:
Variables: A, B, P, A1, Q1, Q2, P2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in B P) A1 P2
============================
exists P1, one (repl (plus (in A P) (in B P))) A1 P1 /\ (exists P3 Q1,
bisim_context_t P1 P3 (par (repl (in A P)) (par (repl (in B P)) P2)) Q1 /\
bisim_up_to bisim_context_t P3 Q1 +)
Subgoal 4.2.2 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q1,
bisim_context_t P1 P3 (par (repl (in A P)) (par (par P2 (M Y)) (repl (in B P)))) Q1 /\
bisim_up_to bisim_context_t P3 Q1 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.2.2:
Variables: A, B, P, A1, Q1, Q2, X, Y, M, P2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : one (in B P) (up X Y) P2
H4 : oneb (in B P) (dn X) M
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q1,
bisim_context_t P1 P3 (par (repl (in A P)) (par (par P2 (M Y)) (repl (in B P)))) Q1 /\
bisim_up_to bisim_context_t P3 Q1 +)
Subgoal 4.2.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.2.3:
Variables: A, B, P, A1, Q1, Q2, X, M, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in B P) (up X) N
H4 : oneb (in B P) (dn X) M
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q1,
bisim_context_t P1 P2 (par (repl (in A P)) (par (nu (y\par (N y) (M y))) (repl (in B P)))) Q1 /\
bisim_up_to bisim_context_t P2 Q1 +)
Subgoal 4.3 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.3:
Variables: A, B, P, A1, Q1, X, N, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (dn X) M
H3 : oneb (repl (in B P)) (up X) N
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.3:
Variables: A, B, P, A1, Q1, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (dn X) M
H4 : oneb (in B P) (up X) M1
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (par (repl (in B P)) (M1 y)))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.4 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 4.4:
Variables: A, B, P, A1, Q1, X, N, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (up X) M
H3 : oneb (repl (in B P)) (dn X) N
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (M y) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 4.4:
Variables: A, B, P, A1, Q1, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (repl (in B P)) (dn X) N
H4 : oneb (in A P) (up X) M1
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (par (repl (in A P)) (M1 y)) (N y))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.4:
Variables: A, B, P, A1, Q1, X, N, M, M1, M2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : oneb (in A P) (up X) M1
H5 : oneb (in B P) (dn X) M2
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (nu (y\par (par (repl (in A P)) (M1 y)) (par (repl (in B P)) (M2 y)))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.5 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 4.5:
Variables: A, B, P, A1, Q1, X, T, Y, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (dn X) M
H3 : one (repl (in B P)) (up X Y) T
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (M Y) T) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.5:
Variables: A, B, P, A1, Q1, X, T, Y, M, P2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (dn X) M
H4 : one (in B P) (up X Y) P2
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (M Y) (par (repl (in B P)) P2)) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.6 is:
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 4.6:
Variables: A, B, P, A1, Q1, X, Y, M, R
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in B P)) (dn X) M
H3 : one (repl (in A P)) (up X Y) R
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par R (M Y)) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 4.6:
Variables: A, B, P, A1, Q1, X, Y, M, R, P2
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in B P)) (dn X) M
H4 : one (in A P) (up X Y) P2
============================
exists P1, one (repl (plus (in A P) (in B P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par (repl (in A P)) P2) (M Y)) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 5 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H4.
Subgoal 5:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (dn X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\
(exists M2 N2, forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 5:
Variables: A, B, P, X, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : oneb (par (repl (in A P)) (repl (in B P))) (dn X) N
============================
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H1.
Subgoal 5.1:
Variables: A, B, P, X, N, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (dn X) M
============================
exists M1, oneb (repl (plus (in A P) (in B P))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_context_t (M1 W) (M2 W) (par (M W) (repl (in B P))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 5.1:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in A P) (dn X) M1
============================
exists M2, oneb (repl (plus (in A P) (in B P))) (dn X) M2 /\
(exists M3 N2, forall W,
bisim_context_t (M2 W) (M3 W) (par (par (repl (in A P)) (M1 W)) (repl (in B P))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 5.1:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M2, oneb (repl (plus (in X M1) (in B M1))) (dn X) M2 /\
(exists M3 N2, forall W,
bisim_context_t (M2 W) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (plus (in X M1) (in B M1))) (M1 x).
Subgoal 5.1:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (repl (plus (in X M1) (in B M1))) (dn X) (x\par (repl (plus (in X M1) (in B M1))) (M1 x)) /\
(exists M3 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +)
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.1.1:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (repl (plus (in X M1) (in B M1))) (dn X) (x\par (repl (plus (in X M1) (in B M1))) (M1 x))
Subgoal 5.1.2 is:
exists M3 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.1.2:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M3 N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (M3 W) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\repl (plus (in X M1) (in B M1)).
Subgoal 5.1.2:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N2, forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (N2 W) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (N2 W) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (in X M1)) (repl (in B M1)).
Subgoal 5.1.2:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall W,
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 5.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) /\
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1)))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 5.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (repl (plus (in X M1) (in B M1))) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (repl (in B M1))) \/
(exists P2 Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R))
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < right.
Subgoal 5.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists P2 Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) P2 (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R, P2 = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 5.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists Q2,
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) Q2 /\
(exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
Q2 = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (par (repl (in X M1)) (repl (in B M1))) (M1 W).
Subgoal 5.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) /\
(exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.1.2.1.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 5.1.2.1.1.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
Subgoal 5.1.2.1.1.2 is:
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_refl with P = par (repl (plus (in X M1) (in B M1))) (M1 W).
Subgoal 5.1.2.1.1.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (repl (plus (in X M1) (in B M1))) (M1 W)) (par (repl (plus (in X M1) (in B M1))) (M1 W))
Subgoal 5.1.2.1.1.2 is:
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_comm with P = M1 W, Q = repl (in B M1).
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_cong_left to H4 with R = repl (in X M1).
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = M1 W, R = repl (in B M1).
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in X M1), Q = repl (in B M1), R = M1 W.
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_trans to H6 H5.
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_sym to H7.
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_trans to H8 H9.
Subgoal 5.1.2.1.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (M1 W) (repl (in B M1))) (par (repl (in B M1)) (M1 W))
H5 : bisim_up_to refl_t (par (repl (in X M1)) (par (M1 W) (repl (in B M1)))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H6 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (M1 W) (repl (in B M1))))
H7 : bisim_up_to refl_t (par (par (repl (in X M1)) (repl (in B M1))) (M1 W)) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H8 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (repl (in X M1)) (par (repl (in B M1)) (M1 W)))
H9 : bisim_up_to refl_t (par (repl (in X M1)) (par (repl (in B M1)) (M1 W))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
H10 : bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
============================
bisim_up_to refl_t (par (par (repl (in X M1)) (M1 W)) (repl (in B M1))) (par (par (repl (in X M1)) (repl (in B M1))) (M1 W))
Subgoal 5.1.2.1.2 is:
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.1.2.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists R,
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) R /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) R
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists M1 W.
Subgoal 5.1.2.1.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W) /\
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.1.2.1.2.1:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in X M1) (in B M1))) (M1 W) = par (repl (plus (in X M1) (in B M1))) (M1 W)
Subgoal 5.1.2.1.2.2 is:
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.1.2.1.2.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (par (repl (in X M1)) (repl (in B M1))) (M1 W) = par (par (repl (in X M1)) (repl (in B M1))) (M1 W)
Subgoal 5.1.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.1.2.2:
Variables: A, B, P, X, N, M, M1, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to bisim_context_t (repl (plus (in X M1) (in B M1))) (par (repl (in X M1)) (repl (in B M1))) +
Subgoal 5.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < backchain CH.
Subgoal 5.2:
Variables: A, B, P, X, N, N1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in B P)) (dn X) N1
============================
exists M, oneb (repl (plus (in A P) (in B P))) (dn X) M /\ (exists M2 N2,
forall W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H2.
Subgoal 5.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in B P) (dn X) M
============================
exists M1, oneb (repl (plus (in A P) (in B P))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (par (repl (in B P)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < case H3.
Subgoal 5.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M1, oneb (repl (plus (in A M) (in X M))) (dn X) M1 /\
(exists M2 N2, forall W,
bisim_context_t (M1 W) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (plus (in A M) (in X M))) (M x).
Subgoal 5.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (repl (plus (in A M) (in X M))) (dn X) (x\par (repl (plus (in A M) (in X M))) (M x)) /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.2.1:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
oneb (repl (plus (in A M) (in X M))) (dn X) (x\par (repl (plus (in A M) (in X M))) (M x))
Subgoal 5.2.2 is:
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.2.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists M2 N2, forall W,
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (M2 W) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\repl (plus (in A M) (in X M)).
Subgoal 5.2.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists N2, forall W,
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (N2 W) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists x\par (repl (in A M)) (repl (in X M)).
Subgoal 5.2.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall W,
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) /\
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 5.2.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) /\
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.2.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_context_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M)))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 5.2.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (repl (plus (in A M) (in X M))) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (repl (in A M)) (repl (in X M))) \/
(exists P2 Q2,
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) P2 (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
(exists R, P2 = par (repl (plus (in A M) (in X M))) R /\
Q2 = par (par (repl (in A M)) (repl (in X M))) R))
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < right.
Subgoal 5.2.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists P2 Q2,
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) P2 (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
(exists R, P2 = par (repl (plus (in A M) (in X M))) R /\
Q2 = par (par (repl (in A M)) (repl (in X M))) R)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (repl (plus (in A M) (in X M))) (M W).
Subgoal 5.2.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists Q2,
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) Q2 /\
(exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
Q2 = par (par (repl (in A M)) (repl (in X M))) R)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists par (par (repl (in A M)) (repl (in X M))) (M W).
Subgoal 5.2.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W)) /\
(exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.2.2.1.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < unfold.
Subgoal 5.2.2.1.1.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))
Subgoal 5.2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_refl with P = par (repl (plus (in A M) (in X M))) (M W).
Subgoal 5.2.2.1.1.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))
============================
bisim_up_to refl_t (par (repl (plus (in A M) (in X M))) (M W)) (par (repl (plus (in A M) (in X M))) (M W))
Subgoal 5.2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.2.2.1.1.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_par_assoc with P = repl (in A M), Q = repl (in X M), R = M W.
Subgoal 5.2.2.1.1.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (par (repl (in A M)) (repl (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W)))
============================
bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < apply bisim_sym to H4.
Subgoal 5.2.2.1.1.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H4 : bisim_up_to refl_t (par (par (repl (in A M)) (repl (in X M))) (M W)) (par (repl (in A M)) (par (repl (in X M)) (M W)))
H5 : bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
============================
bisim_up_to refl_t (par (repl (in A M)) (par (repl (in X M)) (M W))) (par (par (repl (in A M)) (repl (in X M))) (M W))
Subgoal 5.2.2.1.2 is:
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.2.2.1.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
exists R,
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) R /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) R
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < exists M W.
Subgoal 5.2.2.1.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) (M W) /\
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < split.
Subgoal 5.2.2.1.2.1:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (repl (plus (in A M) (in X M))) (M W) = par (repl (plus (in A M) (in X M))) (M W)
Subgoal 5.2.2.1.2.2 is:
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.2.2.1.2.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
par (par (repl (in A M)) (repl (in X M))) (M W) = par (par (repl (in A M)) (repl (in X M))) (M W)
Subgoal 5.2.2.2 is:
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < search.
Subgoal 5.2.2.2:
Variables: A, B, P, X, N, N1, M, W
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
bisim_up_to bisim_context_t (repl (plus (in A M) (in X M))) (par (repl (in A M)) (repl (in X M))) +
Subgoal 6 is:
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < backchain CH.
Subgoal 6:
Variables: A, B, P
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
============================
forall X N, oneb (par (repl (in A P)) (repl (in B P))) (up X) N ->
(exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\
(exists M2 N2, nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_1_context < intros.
Subgoal 6:
Variables: A, B, P, X, N
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H1 : oneb (par (repl (in A P)) (repl (in B P))) (up X) N
============================
exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W, bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_1_context < case H1.
Subgoal 6.1:
Variables: A, B, P, X, N, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in A P)) (up X) M
============================
exists M1, oneb (repl (plus (in A P) (in B P))) (up X) M1 /\
(exists M2 N2, nabla W,
bisim_context_t (M1 W) (M2 W) (par (M W) (repl (in B P))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_1_context < case H2.
Subgoal 6.1:
Variables: A, B, P, X, N, M, M1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in A P) (up X) M1
============================
exists M2, oneb (repl (plus (in A P) (in B P))) (up X) M2 /\
(exists M3 N2, nabla W,
bisim_context_t (M2 W) (M3 W) (par (par (repl (in A P)) (M1 W)) (repl (in B P))) (N2 W) /\
bisim_up_to bisim_context_t (M3 W) (N2 W) +)
Subgoal 6.2 is:
exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_1_context < case H3.
Subgoal 6.2:
Variables: A, B, P, X, N, N1
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H2 : oneb (repl (in B P)) (up X) N1
============================
exists M, oneb (repl (plus (in A P) (in B P))) (up X) M /\ (exists M2 N2,
nabla W,
bisim_context_t (M W) (M2 W) (par (repl (in A P)) (N1 W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_1_context < case H2.
Subgoal 6.2:
Variables: A, B, P, X, N, N1, M
CH : forall A B P,
bisim_up_to bisim_context_t (repl (plus (in A P) (in B P))) (par (repl (in A P)) (repl (in B P))) +
H3 : oneb (in B P) (up X) M
============================
exists M1, oneb (repl (plus (in A P) (in B P))) (up X) M1 /\
(exists M2 N2, nabla W,
bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (par (repl (in B P)) (M W))) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_1_context < case H3.
Proof completed.
Abella < Theorem example_2_context :
forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)).
============================
forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P))
example_2_context < coinduction.
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) #
example_2_context < intros.
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) #
example_2_context < unfold.
Subgoal 1:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall A1 P1, one (repl (repl (in A P))) A1 P1 -> (exists Q1,
one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 1:
Variables: A, P, A1, P1
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : one (repl (repl (in A P))) A1 P1
============================
exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H1.
Subgoal 1.1:
Variables: A, P, A1, P1, P3
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : one (repl (in A P)) A1 P3
============================
exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) P3) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 1.1.1:
Variables: A, P, A1, P1, P3, P4
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : one (in A P) A1 P4
============================
exists Q1, one (repl (in A P)) A1 Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) P4)) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.1.2 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (par P4 (M Y)) (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H3.
Subgoal 1.1.2:
Variables: A, P, A1, P1, P3, X, Y, M, P4
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : one (in A P) (up X Y) P4
H4 : oneb (in A P) (dn X) M
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (par P4 (M Y)) (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H3.
Subgoal 1.1.3:
Variables: A, P, A1, P1, P3, X, M, N
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : oneb (in A P) (up X) N
H4 : oneb (in A P) (dn X) M
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (repl (repl (in A P))) (par (nu (y\par (N y) (M y))) (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.2 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H3.
Subgoal 1.2:
Variables: A, P, A1, P1, X, Y, M, P3
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : one (repl (in A P)) (up X Y) P3
H3 : oneb (repl (in A P)) (dn X) M
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par P3 (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 1.2:
Variables: A, P, A1, P1, X, Y, M, P3, P4
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : oneb (repl (in A P)) (dn X) M
H4 : one (in A P) (up X Y) P4
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (par (par (repl (in A P)) P4) (M Y)) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 1.3 is:
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H4.
Subgoal 1.3:
Variables: A, P, A1, P1, X, M, N
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (repl (in A P)) (up X) N
H3 : oneb (repl (in A P)) (dn X) M
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (N y) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 1.3:
Variables: A, P, A1, P1, X, M, N, M1
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : oneb (repl (in A P)) (dn X) M
H4 : oneb (in A P) (up X) M1
============================
exists Q1, one (repl (in A P)) tau Q1 /\ (exists P2 Q2,
bisim_context_t (par (nu (y\par (par (repl (in A P)) (M1 y)) (M y))) (repl (repl (in A P)))) P2 Q1 Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 2 is:
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H4.
Subgoal 2:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall X M, oneb (repl (repl (in A P))) (dn X) M -> (exists N,
oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 2:
Variables: A, P, X, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : oneb (repl (repl (in A P))) (dn X) M
============================
exists N, oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H1.
Subgoal 2:
Variables: A, P, X, M, M1
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (repl (in A P)) (dn X) M1
============================
exists N, oneb (repl (in A P)) (dn X) N /\ (exists M2 N2, forall W,
bisim_context_t (par (repl (repl (in A P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : oneb (in A P) (dn X) M2
============================
exists N, oneb (repl (in A P)) (dn X) N /\ (exists M1 N2, forall W,
bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) (M2 W))) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H3.
Subgoal 2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists N, oneb (repl (in X M2)) (dn X) N /\ (exists M1 N2, forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\par (repl (in X M2)) (M2 x).
Subgoal 2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
oneb (repl (in X M2)) (dn X) (x\par (repl (in X M2)) (M2 x)) /\
(exists M1 N2, forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +)
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 2.1:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
oneb (repl (in X M2)) (dn X) (x\par (repl (in X M2)) (M2 x))
Subgoal 2.2 is:
exists M1 N2, forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 2.2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists M1 N2, forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (M1 W) (par (repl (in X M2)) (M2 W)) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\repl (repl (in X M2)).
Subgoal 2.2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists N2, forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (N2 W) /\
bisim_up_to bisim_context_t (repl (repl (in X M2))) (N2 W) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\repl (in X M2).
Subgoal 2.2:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall W,
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) /\
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 2.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) /\
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 2.2.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_context_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2))
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < unfold.
Subgoal 2.2.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)) (repl (in X M2)) \/
(exists P2 Q2,
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) P2 (par (repl (in X M2)) (M2 W)) Q2 /\
(exists R, P2 = par (repl (repl (in X M2))) R /\
Q2 = par (repl (in X M2)) R))
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < right.
Subgoal 2.2.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists P2 Q2,
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) P2 (par (repl (in X M2)) (M2 W)) Q2 /\
(exists R, P2 = par (repl (repl (in X M2))) R /\
Q2 = par (repl (in X M2)) R)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists par (repl (repl (in X M2))) (M2 W).
Subgoal 2.2.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists Q2,
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) Q2 /\
(exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
Q2 = par (repl (in X M2)) R)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists par (repl (in X M2)) (M2 W).
Subgoal 2.2.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W)) /\
(exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 2.2.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W)) (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < unfold.
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_repl_absorb with P = repl (in X M2).
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_par_cong_right to H4 with R = M2 W.
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_par_assoc with P = repl (repl (in X M2)), Q = repl (in X M2), R = M2 W.
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_sym to H6.
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
H7 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W))
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_trans to H7 H5.
Subgoal 2.2.1.1.1:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (repl (in X M2))) (repl (in X M2))) (repl (repl (in X M2)))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (M2 W))
H6 : bisim_up_to refl_t (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W)) (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W)))
H7 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (par (repl (repl (in X M2))) (repl (in X M2))) (M2 W))
H8 : bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
============================
bisim_up_to refl_t (par (repl (repl (in X M2))) (par (repl (in X M2)) (M2 W))) (par (repl (repl (in X M2))) (M2 W))
Subgoal 2.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 2.2.1.1.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_refl with P = par (repl (in X M2)) (M2 W).
Subgoal 2.2.1.1.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H4 : bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
============================
bisim_up_to refl_t (par (repl (in X M2)) (M2 W)) (par (repl (in X M2)) (M2 W))
Subgoal 2.2.1.2 is:
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 2.2.1.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists R,
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) R /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) R
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists M2 W.
Subgoal 2.2.1.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
par (repl (repl (in X M2))) (M2 W) = par (repl (repl (in X M2))) (M2 W) /\
par (repl (in X M2)) (M2 W) = par (repl (in X M2)) (M2 W)
Subgoal 2.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 2.2.2:
Variables: A, P, X, M, M1, M2, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to bisim_context_t (repl (repl (in X M2))) (repl (in X M2)) +
Subgoal 3 is:
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < backchain CH.
Subgoal 3:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall X M, oneb (repl (repl (in A P))) (up X) M -> (exists N,
oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 3:
Variables: A, P, X, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : oneb (repl (repl (in A P))) (up X) M
============================
exists N, oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H1.
Subgoal 3:
Variables: A, P, X, M, M1
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (repl (in A P)) (up X) M1
============================
exists N, oneb (repl (in A P)) (up X) N /\ (exists M2 N2, nabla W,
bisim_context_t (par (repl (repl (in A P))) (M1 W)) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 3:
Variables: A, P, X, M, M1, M2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : oneb (in A P) (up X) M2
============================
exists N, oneb (repl (in A P)) (up X) N /\ (exists M1 N2, nabla W,
bisim_context_t (par (repl (repl (in A P))) (par (repl (in A P)) (M2 W))) (M1 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M1 W) (N2 W) +)
Subgoal 4 is:
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H3.
Subgoal 4:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall A1 Q1, one (repl (in A P)) A1 Q1 -> (exists P1,
one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +))
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 4:
Variables: A, P, A1, Q1
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : one (repl (in A P)) A1 Q1
============================
exists P1, one (repl (repl (in A P))) A1 P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 Q1 Q2 /\ bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H1.
Subgoal 4.1:
Variables: A, P, A1, Q1, P2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : one (in A P) A1 P2
============================
exists P1, one (repl (repl (in A P))) A1 P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (repl (in A P)) P2) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.2 is:
exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par P2 (M Y)) (repl (in A P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 4.2:
Variables: A, P, A1, Q1, X, Y, M, P2
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : one (in A P) (up X Y) P2
H3 : oneb (in A P) (dn X) M
============================
exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P3 Q2,
bisim_context_t P1 P3 (par (par P2 (M Y)) (repl (in A P))) Q2 /\
bisim_up_to bisim_context_t P3 Q2 +)
Subgoal 4.3 is:
exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 4.3:
Variables: A, P, A1, Q1, X, M, N
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (in A P) (up X) N
H3 : oneb (in A P) (dn X) M
============================
exists P1, one (repl (repl (in A P))) tau P1 /\ (exists P2 Q2,
bisim_context_t P1 P2 (par (nu (y\par (N y) (M y))) (repl (in A P))) Q2 /\
bisim_up_to bisim_context_t P2 Q2 +)
Subgoal 5 is:
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 5:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall X N, oneb (repl (in A P)) (dn X) N -> (exists M,
oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 5:
Variables: A, P, X, N
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : oneb (repl (in A P)) (dn X) N
============================
exists M, oneb (repl (repl (in A P))) (dn X) M /\ (exists M2 N2, forall W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H1.
Subgoal 5:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (in A P) (dn X) M
============================
exists M1, oneb (repl (repl (in A P))) (dn X) M1 /\ (exists M2 N2,
forall W,
bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < case H2.
Subgoal 5:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists M1, oneb (repl (repl (in X M))) (dn X) M1 /\ (exists M2 N2,
forall W,
bisim_context_t (M1 W) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\par (repl (repl (in X M))) (par (repl (in X M)) (M x)).
Subgoal 5:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
oneb (repl (repl (in X M))) (dn X) (x\par (repl (repl (in X M))) (par (repl (in X M)) (M x))) /\
(exists M2 N2, forall W,
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 5.1:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
oneb (repl (repl (in X M))) (dn X) (x\par (repl (repl (in X M))) (par (repl (in X M)) (M x)))
Subgoal 5.2 is:
exists M2 N2, forall W,
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 5.2:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists M2 N2, forall W,
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (M2 W) (par (repl (in X M)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\repl (repl (in X M)).
Subgoal 5.2:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists N2, forall W,
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (repl (repl (in X M))) (N2 W) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists x\repl (in X M).
Subgoal 5.2:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall W,
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) /\
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 5.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) /\
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 5.2.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_context_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M))
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < unfold.
Subgoal 5.2.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (repl (repl (in X M))) (par (repl (in X M)) (M W)) (repl (in X M)) \/
(exists P2 Q2,
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) P2 (par (repl (in X M)) (M W)) Q2 /\
(exists R, P2 = par (repl (repl (in X M))) R /\
Q2 = par (repl (in X M)) R))
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < right.
Subgoal 5.2.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists P2 Q2,
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) P2 (par (repl (in X M)) (M W)) Q2 /\
(exists R, P2 = par (repl (repl (in X M))) R /\
Q2 = par (repl (in X M)) R)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists par (repl (repl (in X M))) (M W).
Subgoal 5.2.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists Q2,
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) Q2 /\
(exists R,
par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
Q2 = par (repl (in X M)) R)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists par (repl (in X M)) (M W).
Subgoal 5.2.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W)) /\
(exists R,
par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < split.
Subgoal 5.2.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W)) (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < unfold.
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_repl_absorb with P = repl (in X M).
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_par_cong_right to H3 with R = M W.
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_par_assoc with P = repl (repl (in X M)), Q = repl (in X M), R = M W.
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_sym to H5.
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
H6 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (par (repl (repl (in X M))) (repl (in X M))) (M W))
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_trans to H6 H4.
Subgoal 5.2.1.1.1:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (repl (in X M))) (repl (in X M))) (repl (repl (in X M)))
H4 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (M W))
H5 : bisim_up_to refl_t (par (par (repl (repl (in X M))) (repl (in X M))) (M W)) (par (repl (repl (in X M))) (par (repl (in X M)) (M W)))
H6 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (par (repl (repl (in X M))) (repl (in X M))) (M W))
H7 : bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
============================
bisim_up_to refl_t (par (repl (repl (in X M))) (par (repl (in X M)) (M W))) (par (repl (repl (in X M))) (M W))
Subgoal 5.2.1.1.2 is:
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 5.2.1.1.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < apply bisim_refl with P = par (repl (in X M)) (M W).
Subgoal 5.2.1.1.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H3 : bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
============================
bisim_up_to refl_t (par (repl (in X M)) (M W)) (par (repl (in X M)) (M W))
Subgoal 5.2.1.2 is:
exists R, par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 5.2.1.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
exists R,
par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) R /\
par (repl (in X M)) (M W) = par (repl (in X M)) R
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < exists M W.
Subgoal 5.2.1.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
par (repl (repl (in X M))) (M W) = par (repl (repl (in X M))) (M W) /\
par (repl (in X M)) (M W) = par (repl (in X M)) (M W)
Subgoal 5.2.2 is:
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < search.
Subgoal 5.2.2:
Variables: A, P, X, N, M, W
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
bisim_up_to bisim_context_t (repl (repl (in X M))) (repl (in X M)) +
Subgoal 6 is:
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < backchain CH.
Subgoal 6:
Variables: A, P
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
============================
forall X N, oneb (repl (in A P)) (up X) N -> (exists M,
oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +))
example_2_context < intros.
Subgoal 6:
Variables: A, P, X, N
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H1 : oneb (repl (in A P)) (up X) N
============================
exists M, oneb (repl (repl (in A P))) (up X) M /\ (exists M2 N2, nabla W,
bisim_context_t (M W) (M2 W) (N W) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_2_context < case H1.
Subgoal 6:
Variables: A, P, X, N, M
CH : forall A P,
bisim_up_to bisim_context_t (repl (repl (in A P))) (repl (in A P)) +
H2 : oneb (in A P) (up X) M
============================
exists M1, oneb (repl (repl (in A P))) (up X) M1 /\ (exists M2 N2,
nabla W,
bisim_context_t (M1 W) (M2 W) (par (repl (in A P)) (M W)) (N2 W) /\
bisim_up_to bisim_context_t (M2 W) (N2 W) +)
example_2_context < case H2.
Proof completed.
Abella < Goodbye.